1. 程式人生 > >【Python學習系列二十二】pandas資料篩選和排序

【Python學習系列二十二】pandas資料篩選和排序

在Pandas中通過.sort和.loc函式也可以實現這兩 個功能。.sort函式可以實現對資料表的排序操作,.loc函式可以實現對資料表的篩選操作。

1、排序

sort函式主要包含6個引數:columns為要進行排序的列名稱; ascending為排序的方式true為升序,False為降序,預設為true;axis為排序的軸,0表示index,1表示columns,當對資料列進行排序時,axis必須設定為0;inplace預設為False,表示對資料 表進行排序,不建立新例項;Kind可選擇排序的方式,如快速排序等;na_position對NaN值的處理方式,可以選擇first和last兩種方式,預設為last,也就是將NaN值放在排序的結尾。


1)單列資料排序

df.sort(["score"],ascending=True)#升序

df.sort(["score"],ascending=False)#降序

2)多列排序

df.sort(["score","age"],ascending=True)#升序

df.sort(["score","age"],ascending=False)#降序

優先第一列的排序

2、篩選

在篩選功能上Pandas使用的是.loc函式。


案例如下:

ds_0=label_ds.loc[(label_ds["action_type"] == 0) &\
                       (label_ds["u_brand_num"]>0) & (label_ds["u_cat_num"]>0) & \
                       (label_ds["u_ratio"]>0) & (label_ds["u_spu_ratio"]>0),\
                      ['u_brand_num','u_cat_num','u_spu_ratio','u_ratio','action_type']].sort(["u_brand_num
"],ascending=False)

實現多列篩選,並顯示指定列,並以特定列排序。條件中可以與或非。

可以按篩選後條件進行求和和平均,如下:

lc.loc[(lc["grade"] == "B") & (lc["loan_amnt"] > 5000)].loan_amnt.sum() #求和

lc.loc[(lc["grade"] == "B") & (lc["loan_amnt"] > 5000)].loan_amnt.count()#計數

lc.loc[(lc["grade"] == "B") | (lc["loan_amnt"] > 5000)].loan_amnt.mean()#均值

lc.loc[lc["grade"] == "B"].loan_amnt.max()#最大值

lc.loc[lc["grade"] != "B"].loan_amnt.min()#最小值