簡體   English   中英

在python中匹配兩個pandas數據幀的列名

[英]Matching the column names of two pandas data-frames in python

我有兩個名為df1df2 pandas數據幀,以便`

df1: a      b    c    d
     1      2    3    4
     5      6    7    8

df2:      b    c   
          12   13   

我希望結果如此

result:    b    c    
           2    3    
           6    7    

這里應該注意abcd是pandas dataframe中的列名。 兩個pandas數據幀的形狀和值是不同的。 我想將df2的列名與df1的列名匹配,並選擇df1的所有行,其頭部與df2的列名匹配df2僅用於選擇df1的特定列,保持所有行。 我嘗試了下面給出的一些代碼,但這給了我一個空索引。

df1.columns.intersection(df2.columns)

上面的代碼沒有給我我的支持,因為它給索引標題沒有值。 我想編寫一個代碼,在其中我可以將我的兩個數據幀作為輸入,並比較列標題以供選擇。 我沒有硬編碼列名。

我相信你需要:

df = df1[df1.columns.intersection(df2.columns)]

或者像@Zero在評論中指出:

df = df1[df1.columns & df2.columns]

或者,使用reindex

In [594]: df1.reindex(columns=df2.columns)
Out[594]:
   b  c
0  2  3
1  6  7

也作為

In [595]: df1.reindex(df2.columns, axis=1)
Out[595]:
   b  c
0  2  3
1  6  7

交叉路口:

df = df1[df1.columns.isin(df2.columns)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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