![](/img/trans.png)
[英]Python Pandas : compare two data-frames along one column and return content of rows of both data frames in another data frame
[英]Matching the column names of two pandas data-frames in python
我有兩個名為df1
和df2
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.