![](/img/trans.png)
[英]In Pandas, how to get multiple subset data frame based on groupby criteria?
[英]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.