[英]Pandas: How to concatenate dataframes with different columns?
我試圖在官方Pandas 文檔中找到答案,但發現它比幫助更令人困惑。 基本上我有兩個具有重疊但不相同的列列表的數據框:
df1:
A B
0 22 34
1 78 42
df2:
B C
0 76 29
1 11 67
我想合並/連接/附加它們,以便結果是
df3:
A B C
0 22 34 nan
1 78 42 nan
2 nan 76 29
3 nan 11 67
應該相當簡單,但我嘗試了幾種直觀的方法,但總是出錯。 有人可以幫我嗎?
您需要與參數 how = outer 合並
df3 = df1.merge(df2, how = 'outer')
A B C
0 22.0 34 NaN
1 78.0 42 NaN
2 NaN 76 29.0
3 NaN 11 67.0
如果您只想連接可以使用的數據幀。
pd.concat([df1,df2])
輸出:
A B C
0 22.0 34 NaN
1 78.0 42 NaN
0 NaN 76 11.0
1 NaN 11 67.0
然后你可以 reset_index 重新創建一個簡單的遞增索引。
pd.concat([df,df2]).reset_index(drop = True)
輸出:
A B C
0 22.0 34 NaN
1 78.0 42 NaN
2 NaN 76 11.0
3 NaN 11 67.0
@vaishali 和 @scott-boston 解決方案都有效。 更喜歡合並功能,因為它允許使用 how 參數更靈活地處理結果。 但是,如果涉及的列很少,則 concat 可以獲得更好的性能
要優化@scott-boston 答案,您還可以使用內部 concat 參數igonore_index
自動調整索引大小,而無需調用另一個函數,代碼如下:
pd.concat([df1,df2],ignore_index=True)
輸出
A B C
0 22.0 34 NaN
1 78.0 42 NaN
2 NaN 76 11.0
3 NaN 11 67.0
Python(版本 3.8.5)| 大熊貓(版本 1.1.3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.