我希望我的問題首先有意義。所以我有幾個 csv 文件,我想將它們合并到一個 DataFrame 中,每個 DataFrame 的結構都相似,每年都會在一個對象上記錄一個特定的指標。每個 DataFrame 都由某個類別分隔。例如,簡化版本是每個班級的學生成績:DF1: MathYear . Student1 . Student2 ... Student500 . Student5012001 . 90 . 84 ... 92 . 652002 . 84 . 62 ... 70 . 100...2020 . 75 . 43 ... 50 . 83DF2: ScienceYear . Student1 . Student2 ... Student500 . Student5012001 . 56 . 70 ... 82 . 992002 . 76 . 55 ... 70 . 80...2020 . 75 . 43 ... 50 . 83DF3: HistoryYear . Student1 . Student2 ... Student500 . Student5012001 . 90 . 84 ... 92 . 652002 . 84 . 62 ... 70 . 100...2020 . 75 . 43 ... 50 . 83我希望將這些數據幀組合成一個具有以下結構的數據幀Year . Student . Math . Science . English我的嘗試是像這樣創建一個新的空 DataFrame:import pandas as pdcombinedDf = pd.DataFrame({'Year':[], 'Student':[], 'Math':[], 'Science':[], 'English':[]})然后嘗試手動迭代每個數據幀,循環遍歷每一行并將數據附加到組合Df。因此,對于數學表,我必須為科學和英語值添加 None 和 None,直到我在相關數據框中迭代這些值,以便我可以將它們插入到組合 Df 中。這很快就變得非常令人沮喪,因為有時其中一張桌子缺少一年或一名學生。所以我的問題是:有沒有更簡單的方法來合并這些 DataFrames?我想它不應該這么復雜,但我似乎找不到更簡單的方法來解決它。
1 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
你可以concat
試試stack
s=pd.concat([df1,df2,df3],keys=['math','scie','his']).\ set_index('Year',append=True).stack().unstack(level=0).reset_index()
添加回答
舉報
0/150
提交
取消