簡體   English   中英

Pandas 數據框,groupBy 聚合多列和多行

[英]Pandas dataframe, groupBy aggregate multiple columns and rows

我有一個如下所示的 Pandas DataFrame:

  supply_area transaction_date     price
0       54.98       2006-03-31   48500.0
0       54.98       2006-04-30   48500.0
0       54.98       2006-05-31   48500.0
1       67.28       2006-01-31   54500.0
1       67.28       2006-02-28   54500.0
1       67.28       2006-03-31   54500.0

我想按 supply_area 與一個連接 transaction_date 和 price 的列進行分組,如下所示:

  supply_area transaction_date_price     price
0       54.98       2006-03-31,48500.0,2006-04-30,48500.0,2006-05-31,48500.0
1       67.28       2006-01-31,54500.0,2006-02-28,54500.0,2006-03-31,54500.0

我已經嘗試過這個和其他一些事情,但它不起作用。

df = df.groupby('supply_area').agg(
                {'supply_area': 'first', 'transaction_date': ','.join, 'price': ','.join})

我對 python 和 pandas lib 還很陌生,所以我不確定我想要的是否可行。

提前致謝!

您可以使用第一個連接創建一個新列(此處稱為“joined”,但任何名稱都可以),然后在groupby上連接:

df['joined'] = (df['transaction_date'] + ',' + df['price'].astype(str))
df.groupby('supply_area', as_index=False)['joined'].apply(','.join)

輸出:

   supply_area                                              joined
0        54.98  2006-03-31,48500,2006-04-30,48500,2006-05-31,48500
1        67.28  2006-01-31,54500,2006-02-28,54500,2006-03-31,54500

暫無
暫無

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

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