[問題] pandas重覆欄位

看板Python作者 (望仔)時間5年前 (2020/06/07 18:39), 5年前編輯推噓2(202)
留言4則, 2人參與, 5年前最新討論串1/1
今天拿到了一筆資料如下 日期 區域 繳費方式 金額 繳費方式 金額 繳費方式 金額 繳費方式 金額 0601 桃園 A 500 B 50 C 85 D 70 0601 台北 A 300 B 55 C 90 D 75 0602 高雄 A 105 B 150 C 70 D 85 0603 台中 A 150 B 500 C 10 D 95 想依繳費方式做分類彙總,所以表格要變成 日期 區域 繳費方式 金額 0601 桃園 A 500 0601 桃園 B 50 0601 桃園 C 85 0601 桃園 D 70 0601 台中 A 300 0601 台中 B 55 0601 台中 C 90 0601 台中 D 75 0602.... 目前想到是分欄讀成多個DF再合併,但繳費方式很多,想請問還有其他方式嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.189.27 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1591526359.A.E61.html

06/07 22:37, 5年前 , 1F
column能改標籤名字的話,會方便很多。
06/07 22:37, 1F

06/07 22:37, 5年前 , 2F
供你參考: https://bit.ly/2XHZYSG
06/07 22:37, 2F

06/11 20:16, 5年前 , 3F
感謝,試成功了。如果又多一欄金額好像就不能了
06/11 20:16, 3F

06/11 22:33, 5年前 , 4F
依照範例試試看吧 記得新的欄位的column也要改標籤
06/11 22:33, 4F
在每個方法加上筆數 堆疊沒弄出來,用創兩DF在合併成功了 import pandas as pd data = pd.DataFrame( [['0601', 'Taoyuan', 'A', 10, 500, 'B',5, 50, 'C',50, 85, 'D',2, 70], ['0601', 'Taipei', 'A', 1, 300, 'B',9, 55, 'C',7, 90, 'D',3, 75], ['0602', 'Kaohsiung', 'A',2, 105, 'B',20, 150, 'C',25, 70, 'D',6, 85], ['0603', 'Taichung', 'A', 3, 150, 'B', 10,500, 'C',20, 10, 'D',11, 95]], columns=['Date', 'Region', 'Method_A', 'ca','A', 'Method_B', 'cb','B', 'Method_C','cc', 'C', 'Method_D','cd', 'D']) data_selected = data[['Date','Region','A','B','C','D']] data_output = data_selected.set_index(['Date', 'Region']).stack().reset_index() data_selected1 = data[['Date','Region','ca','cb','cc','cd']] data_output1 = data_selected1.set_index(['Date', 'Region']).stack().reset_index() ok = pd.merge(data_output,data_output1,on=['Date','Region']) ok = ok[['Date','Region','level_2_x','0_y','0_x']] ok.columns = ['Date','Region','Method','Num','Money'] ※ 編輯: rounders (220.133.189.27 臺灣), 06/22/2020 22:48:02
文章代碼(AID): #1UtCFNvX (Python)
文章代碼(AID): #1UtCFNvX (Python)