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

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

從多個數據表創建具有多對多關系的數據表

從多個數據表創建具有多對多關系的數據表

飲歌長嘯 2022-07-12 10:10:32
我希望我的問題首先有意義。所以我有幾個 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()


查看完整回答
反對 回復 2022-07-12
  • 1 回答
  • 0 關注
  • 89 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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