pandas 重新组织DataFrame(将行信息交换为列)[重复]

v9tzhpje  于 2023-03-16  发布在  其他
关注(0)|答案(1)|浏览(121)

此问题在此处已有答案

How can I pivot a dataframe?(5个答案)
9小时前关门了。
我有下一个数据框。

data={
 'date':['2023-01', '2023-01', '2023-01', '2023-01', '2023-02', '2023-02', '2023-02', '2023-02', '2023-02'],
'concept':['FOOD', 'CAR', 'EDUCATION', 'ELECTRICITY', 'FOOD', 'CAR', 'TRAVEL', 'WATER', 'ELECTRICITY'],
'amount':[455.54, 237.41, 3.91, 213.2, 28.72, 422.72, 263.29, 3.93, 89.35]  
      }
df = pd.DataFrame(data)

我想对信息重新排序,这样我就把所有的概念作为行,然后每一列是一个月,最后第三列是所有月的总和,结果应该是这样的DataFrame:
| | 一月二十三日|二月二十三日|共计|
| - ------|- ------|- ------|- ------|
| 汽车|二百三十七点四一|四百二十二点七二|六百六十点一三|
| 教育|三点九一分|无|三点九一分|
| 电力|二一三点二|八十九点三五|小行星302.55|
| 食物|四百五十五点五四分|二十八点七二分|四百八十四点二六|
| 旅行|无|二百六十三点二九|二百六十三点二九|
| 水|无|三点九三|三点九三|
我怎么能这么做?

abithluo

abithluo1#

可以像这样使用pivot函数,然后使用sum函数

new_df = df.pivot(columns='date', index='concept', values='amount')
new_df['total'] = new_df.sum(axis=1)

相关问题