[英]join 2 pandas dataframes with different number of columns
考慮我們有2個數據幀:
df = pd.DataFrame(columns = ['a','b','c']) ##empty
d = {'a': [1, 2], 'b': [3, 4]}
df1 = pd.DataFrame(data=d)
我怎樣才能加入他們,結果如下:
a b c
-----
1 3 Nan
---------
2 4 Nan
-------
使用df
的列reindex
:
df = pd.DataFrame(columns = ['a','b','c'])
d = {'a': [1, 2], 'b': [3, 4]}
df1 = pd.DataFrame(data=d).reindex(columns=df.columns)
print (df1)
a b c
0 1 3 NaN
1 2 4 NaN
解決方案之間的差異 - 如果未排序的列獲得不同的輸出:
#different order
df = pd.DataFrame(columns = ['c','a','b'])
d = {'a': [1, 2], 'b': [3, 4]}
df1 = pd.DataFrame(data=d)
print (df1.reindex(columns=df.columns))
c a b
0 NaN 1 3
1 NaN 2 4
print (df1.merge(df,how='left'))
a b c
0 1 3 NaN
1 2 4 NaN
我怎樣才能加入他們
如果您的數據幀存在於某處(而不是創建新的),請執行以下操作:
df1.merge(df,how='left')
a b c
0 1 3 NaN
1 2 4 NaN
注意:這會生成已排序的列。 因此,如果列的順序已經排序,這將正常工作,否則不會。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.