簡體   English   中英

如何在 Pandas 中獲取組中最大數據的列的值?

[英]How do I get the value of the column with the max data in a group by in Pandas?

我有一個數據框,它為每個特定的user_id有多行,我正在嘗試創建一個新的數據框來聚合每個user_id的值。 例如,原始數據幀df

id    user_id      eventdate      col1       col2
1      100         2015-10-01      2          A
2      200         2015-11-01      4          B
3      300         2015-12-01      1          A
4      100         2016-02-01      3          B
5      300         2016-03-01      6          C

從這里我想要一個新的數據幀df_agg為每個用戶是這樣的:

user_id      col1_sum        col2_latest
100          5               B
200          4               B
300          7               C

我通過執行這樣的 groupby 獲得了col1_sum

df_agg = pd.DataFrame({'col1_sum': df.groupby('NAME')['col1'].sum()})

如何將col2_latest列添加到此數據col2_latest

您需要按sumlast aggregate

df_agg = df.groupby('user_id').agg({'col1':'sum','col2':'last'})
df_agg = df_agg[['col1','col2']].rename(columns={'col1':'col1_sum','col2':'col2_latest'})
                                .reset_index()
print (df_agg)
   user_id  col1_sum col2_latest
0      100         5           B
1      200         4           B
2      300         7           C

暫無
暫無

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

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