簡體   English   中英

根據 time freq 和 groupby 獲取整個數據幀

[英]Get the whole data frame based on time freq and groupby

我試圖根據 dataframe 的時間頻率進行分組。 我可以獲取所有列,而不僅僅是 group by 中的指定列。

代碼:

df.columns = ['time', 'age', 'salary', 'amount','university', 'gender', 'place', 'education']

東風:

time    age salary  amount  university  gender  place   education
12/6/2021   24  33333   232323  SK  M   US  BE
12/6/2021   24  33333   232323  SK  M   US  BE
12/8/2021   30  23656   9496    SE  F   UK  BARC
12/9/2021   34  65652   26266   DE  M   UK  BTECH
12/6/2021   25  89893   2652    NK  F   GER BSC
12/6/2021   25  89893   2652    NK  F   GER BSC
12/8/2021   70  445464  78989   SE  F   UK  BARC
12/9/2021   45  65656   225415  NK  F   GER BTECH
12/6/2021   29  5996    3232    NK  M   CAN BTECH

full_data = data.groupby([pd.Grouper(key='time', freq='4min'),'age', 'salary', 'amount','university']).size().reset_index(name='counts') 

預期的:

time    age salary  amount  university  gender  place   education   counts
12/6/2021   24  33333   232323  SK         M    US  BE  2
12/8/2021   30  23656   9496    SE         F    UK  BARC    1
12/9/2021   34  65652   26266   DE         M    UK  BTECH   1
12/6/2021   25  89893   2652    NK         F    GER BSC 2
12/8/2021   70  445464  78989   SE         F    UK  BARC    1
12/9/2021   45  65656   225415  NK         F    GER BTECH   1
12/6/2021   29  5996    3232    NK         M    CAN BTECH   1

上述代碼的結果只有 5 列。 有沒有辦法得到所有的列

IIUC 用途:

data['counts'] = data.groupby([pd.Grouper(key='time', freq='4min'),'age', 'salary', 'amount','university'])['age'].transform('size')

df = data.drop_duplicates(['age', 'salary', 'amount','university'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM