Pandas組間組內分類排序抽樣/rank/groupby/apply/sample/sort_values多種組合隨機抽數據

舉栗子

test=pd.DataFrame({'a':[1,2,3,4,5,11,22],'b':[6,7,8,9,10,12,33],'c':['x','z','y','z','x','y','z']})

1  組間排序

    組間排序輸出顯示的是“c”列中各個類別爲一個數值的形式。

test['c'].rank(ascending=0,method='dense')

2  類別排序

    根據某一列的類別進行按照類別歸類排列。

test.sort_values(by="c",inplace=True)

3  組內排序

    組內排序rank與分組groupby組合使用,輸出類別分組後,在各類別中進行排序

test['sort']=test['a'].groupby(test['c']).rank(method='dense',ascending=1)

 

4  抽取各個類別的前2行數據

test[test['sort'].apply(lambda x:x<3)]

5  隨機抽樣各個類別的百分比數據

test.groupby(test['c']).apply(lambda x:x.sample(frac=0.5))

6  使用隨機數抽取數據

#導包
import pandas
import numpy as np
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data5.csv")
#獲取隨機值
r=np.random.randint(0,10,3)
#對行進行切片
newDf=df.loc[r,:]

原文鏈接:https://blog.csdn.net/meiqi0538/article/details/82557894

這裏寫圖片描述

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章