我有一個包含八個非常相似的資料框的字典。我想從所有這些資料框中選擇同名的列并將它們連接到一個新的資料框中,其中的列獲取它們來自的資料框的鍵的名稱。在小的情況下,它看起來像這樣:
d1 = {'DE': [1, 2, 3], 'BE': [3, 4, 5], 'AT': [5, 6, 7]}
df1 = pd.DataFrame(data=d1)
d2 = {'DE': [5, 7, 9], 'BE': [4, 6, 2], 'AT': [3, 5, 2]}
df2 = pd.DataFrame(data=d2)
d3 = {'DE': [1, 5, 4], 'BE': [5, 2, 1], 'AT': [3, 6, 1]}
df3 = pd.DataFrame(data=d3)
technology = {'solar' : df1, 'wind_onshore' : df2, 'wind_offshore' : df3}
現在我想選擇每個資料框的“DE”列并將其連接到一個新的資料框中,其中每一列的名稱來自于例如太陽能、wind_onshore、wind_offshore。
我希望這不是一個微不足道的問題,我只是不明白 :D 謝謝大家 :)
編輯:我不小心構建了一個字典字典而不是資料框字典
uj5u.com熱心網友回復:
您可以先向每個 df 添加一個技術列,然后將單獨的 df 使用組合pd.concat成一個長 df。然后,您可以使用pd.pivot使列成為技術
d1 = {'DE': [1, 2, 3], 'BE': [3, 4, 5], 'AT': [5, 6, 7]}
df1 = pd.DataFrame(data=d1)
df1['technology'] = 'solar'
d2 = {'DE': [5, 7, 9], 'BE': [4, 6, 2], 'AT': [3, 5, 2]}
df2 = pd.DataFrame(data=d2)
df2['technology'] = 'wind_onshore'
d3 = {'DE': [1, 5, 4], 'BE': [5, 2, 1], 'AT': [3, 6, 1]}
df3 = pd.DataFrame(data=d3)
df3['technology'] = 'wind_offshore'
combined_df = pd.concat((df1,df2,df3))
wide_df = combined_df.pivot(
values='DE',
columns='technology',
)
wide_df
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/427003.html
上一篇:如何過濾火花資料框中的結構陣列?
