亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 pandas 中聚合總和并將唯一行值轉換為列名稱?

如何在 pandas 中聚合總和并將唯一行值轉換為列名稱?

慕運維8079593 2023-10-06 10:56:47
我對 pandas 功能有疑問pd.groupby()。我有數據框data = [{'Shop': 'Venga', 'Item Name': 'Oranges', 'Measure':'Supply Cost', 'Value': '10'},        {'Shop': 'Venga', 'Item Name': 'Oranges', 'Measure':'Product Cost', 'Value': '20'},        {'Shop': 'Venga', 'Item Name': 'Apples', 'Measure':'Supply Cost', 'Value': '5'},        {'Shop': 'Venga', 'Item Name': 'Apples', 'Measure':'Product Cost', 'Value': '60'},        {'Shop': 'Mesto', 'Item Name': 'Oranges', 'Measure':'Supply Cost', 'Value': '15'},        {'Shop': 'Mesto', 'Item Name': 'Oranges', 'Measure':'Product Cost', 'Value': '10'},        {'Shop': 'Mesto', 'Item Name': 'Apples', 'Measure':'Supply Cost', 'Value': '80'},        {'Shop': 'Mesto', 'Item Name': 'Apples', 'Measure':'Product Cost', 'Value': '5'},       ]我想將我的類別移至Measure列并使其看起來像這樣:我嘗試過跑步,data.groupby(['Measure'], axis = 1).sum()但對我來說根本不起作用。
查看完整描述

1 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

  • .groupby然后使用.unstack正確的級別。

    • 在本例中,level=2'Measure'來自.groupby對象的列。

  • .reset_index刪除多級索引。

import pandas as pd


dfg = df.groupby(['Shop', 'Item Name', 'Measure'])['Value'].sum().unstack(level=2).reset_index()

dfg.columns.name = None


# display(dfg)

? ? Shop Item Name Product Cost Supply Cost

0? Mesto? ? Apples? ? ? ? ? ? 5? ? ? ? ? 80

1? Mesto? ?Oranges? ? ? ? ? ?10? ? ? ? ? 15

2? Venga? ? Apples? ? ? ? ? ?60? ? ? ? ? ?5

3? Venga? ?Oranges? ? ? ? ? ?20? ? ? ? ? 10


查看完整回答
反對 回復 2023-10-06
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號