簡體   English   中英

連接具有不同列數的2個pandas數據幀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM