簡體   English   中英

Pandas Groupby對不同的列使用不同的agg方法

[英]Pandas Groupby using different agg methods for different columns

這是場景:

  • 我有一個大型有序數據集,包含314列和超過300.000行的ML問題。

  • 我想通過X列(供應商)按數據集進行分組。

  • 一列是日期時間類型,一些列本質上是數字的,而另一列是從一些分類列中進行的一次熱編碼。

期望的輸出:

  • 我想從列X中分組,並將數字列聚合為“均值”,將某些列聚合為“最后”,將一個熱編碼的列按“總和”聚合。 全部采用相同的agg方法。

由於我們討論的是314列數據集,因此我不能僅創建包含每列的dict。

df_train.groupby('Supplier').agg({<some columns> : 'last', <some columns>: 'sum', <some columns>: 'mean' })

PS:我使用我想要應用不同聚合的序列來排序列。

您可以使用select_dtypes來獲取數字列,並在字典理解中使用它們。

numeric_cols = df_train.select_dtypes('numeric').columns

agg_dict = {c: 'sum' if c in numeric_cols else 'last' for c in df_train.columns}

grouped = df_train.groupby('Supplier').agg(agg_dict)

關於您的單熱編碼列,您需要提供有關如何識別它們的更多信息。

暫無
暫無

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

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