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

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

重塑 Pandas 數據框,其中包含一列中的所有年份和跨多列分隔的月份

重塑 Pandas 數據框,其中包含一列中的所有年份和跨多列分隔的月份

largeQ 2023-09-26 14:05:55
我有一個數據框,其中包含不同年份不同時間段內每種產品的銷售額:df = pd.DataFrame({'Product': {0: '1', 1: '1', 2: '2', 3: '2'},                   'Year': {0: 2000, 1: 2001, 2: 2001, 3:2002},                   'Jan-Feb': {0: 2, 1: 4, 2: 2, 3:4},                    'Mar-Apr': {0: 1, 1: 2, 2: 1, 3:6}})df有產品 分別有產品 1 和 2 的銷售額year,但一年內的時間段顯示在不同的列中。在本例中,我展示了兩列,但還有四列代表一年內連續兩個月的剩余時間段。我想重塑df成這樣:df2 = pd.DataFrame({'Product': {0: '1', 1: '1', 2: '1', 3: '1', 4: '2', 5: '2', 6: '2', 7: '2'},                   'Year': {0: 2000, 1: 2000, 2: 2001, 3:2001,4: 2001, 5: 2001, 6: 2002, 7:2002},                   'Period': {0: 'Jan-Feb', 1: 'Mar-Apr', 2: 'Jan-Feb', 3:'Mar-Apr', 4: 'Jan-Feb', 5: 'Mar-Apr', 6: 'Jan-Feb', 7:'Mar-Apr'},                   'Sales': {0: 2, 1: 1, 2: 4, 3: 2, 4: 2, 5: 1, 6: 4, 7: 6}})在本例中,月份期間全部位于一列中,銷售額位于另一列中。我嘗試過不同形式的重塑,但我顯然錯過了一些東西,因為我還沒有成功地找到一種能夠滿足我想要的效果的方法。
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

檢查與melt


out = df.melt(['Product','Year'], var_name = 'Period', value_name = 'Sales')

  Product  Year   Period  Sales

0       1  2000  Jan-Feb      2

1       1  2001  Jan-Feb      4

2       2  2001  Jan-Feb      2

3       2  2002  Jan-Feb      4

4       1  2000  Mar-Apr      1

5       1  2001  Mar-Apr      2

6       2  2001  Mar-Apr      1

7       2  2002  Mar-Apr      6


查看完整回答
反對 回復 2023-09-26
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

用途stack():


df = df.set_index(['Product','Year']).stack(0).reset_index()

df.columns = ['Product','Year','Period','Sales']

輸出:


  Product  Year   Period  Sales

0       1  2000  Jan-Feb      2

1       1  2000  Mar-Apr      1

2       1  2001  Jan-Feb      4

3       1  2001  Mar-Apr      2

4       2  2001  Jan-Feb      2

5       2  2001  Mar-Apr      1

6       2  2002  Jan-Feb      4

7       2  2002  Mar-Apr      6


查看完整回答
反對 回復 2023-09-26
  • 2 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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