在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ Pandas排序
Pandas教程
Pandas注意事項&竅門
Pandas IO工具
Pandas重建索引
Pandas稀疏數(shù)據(jù)
Pandas時間差(Timedelta)
Pandas聚合
Pandas字符串和文本數(shù)據(jù)
Pandas分類數(shù)據(jù)
Pandas索引和選擇數(shù)據(jù)
Pandas基本功能
Pandas系列
Pandas數(shù)據(jù)幀(DataFrame)
Pandas日期功能
Pandas缺失數(shù)據(jù)
Pandas與SQL比較
Pandas迭代
Pandas合并/連接
Pandas選項和自定義
Pandas級聯(lián)
Pandas可視化
Pandas數(shù)據(jù)結(jié)構(gòu)
Pandas環(huán)境安裝配置
Pandas統(tǒng)計函數(shù)
Pandas窗口函數(shù)
Pandas面板(Panel)
Pandas排序
Pandas函數(shù)應(yīng)用
Pandas快速入門
Pandas描述性統(tǒng)計
Pandas分組(GroupBy)

Pandas排序

Pandas有兩種排序方式,它們分別是 -

  • 按標(biāo)簽
  • 按實際值

下面來看看一個輸出的例子。

import pandas as pd
import numpy as np

unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
mns=['col2','col1'])
print (unsorted_df)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

       col2      col1
1  1.069838  0.096230
4 -0.542406 -0.219829
6 -0.071661  0.392091
2  1.399976 -0.472169
3  0.428372 -0.624630
5  0.471875  0.966560
9 -0.131851 -1.254495
8  1.180651  0.199548
0  0.906202  0.418524
7  0.124800  2.011962

unsorted_df數(shù)據(jù)值中,標(biāo)簽和值未排序。下面來看看如何按標(biāo)簽來排序。

按標(biāo)簽排序

使用sort_index()方法,通過傳遞axis參數(shù)和排序順序,可以對DataFrame進(jìn)行排序。 默認(rèn)情況下,按照升序?qū)π袠?biāo)簽進(jìn)行排序。

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns = ['col2','col1'])

sorted_df=unsorted_df.sort_index()
print (sorted_df)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

       col2      col1
0  0.431384 -0.401538
1  0.111887 -0.222582
2 -0.166893 -0.237506
3  0.476472  0.508397
4  0.670838  0.406476
5  2.065969 -0.324510
6 -0.441630  1.060425
7  0.735145  0.972447
8 -0.051904 -1.112292
9  0.134108  0.759698

排序順序

通過將布爾值傳遞給升序參數(shù),可以控制排序順序。 來看看下面的例子來理解一下。

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns = ['col2','col1'])

sorted_df = unsorted_df.sort_index(ascending=False)
print (sorted_df)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

       col2      col1
9  0.750452  1.754815
8  0.945238  2.079394
7  0.345238 -0.162737
6 -0.512060  0.887094
5  1.163144  0.595402
4 -0.063584 -0.185536
3 -0.275438 -2.286831
2 -1.504792 -1.222394
1  1.031234 -1.848174
0 -0.615083  0.784086

按列排列

通過傳遞axis參數(shù)值為01,可以對列標(biāo)簽進(jìn)行排序。 默認(rèn)情況下,axis = 0,逐行排列。來看看下面的例子來理解這個概念。

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns = ['col2','col1'])

sorted_df=unsorted_df.sort_index(axis=1)

print (sorted_df)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

       col1      col2
1 -0.997962  0.736707
4  1.196464  0.703710
6 -0.387800  1.207803
2  1.614043  0.356389
3 -0.057181 -0.551742
5  1.034451 -0.731490
9 -0.564355  0.892203
8 -0.763526  0.684207
0 -1.213615  1.268649
7  0.316543 -1.450784

按值排序

像索引排序一樣,sort_values()是按值排序的方法。它接受一個by參數(shù),它將使用要與其排序值的DataFrame的列名稱。

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
sorted_df = unsorted_df.sort_values(by='col1')

print (sorted_df)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

   col1  col2
1     1     3
2     1     2
3     1     4
0     2     1

注意: 觀察上面的輸出結(jié)果,col1值被排序,相應(yīng)的col2值和行索引將隨col1一起改變。因此,它們看起來沒有排序。

通過by參數(shù)指定需要列值,參考以下示例代碼 -

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
sorted_df = unsorted_df.sort_values(by=['col1','col2'])

print (sorted_df)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

   col1  col2
2     1     2
1     1     3
3     1     4
0     2     1

排序算法

sort_values()提供了從mergeesortheapsortquicksort中選擇算法的一個配置。Mergesort是唯一穩(wěn)定的算法。參考以下示例代碼 -

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort')

print (sorted_df)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

   col1  col2
1     1     3
2     1     2
3     1     4
0     2     1