我有两个名为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
需要注意的是,a b c d
是pandas dataframe中的列名。两个pandas dataframe的形状和值是不同的。我想将df2
的列名与df1
的列名匹配,并选择所有与df2
的列名匹配的df1
的行。只使用df2
来选择df1
的特定列,保留所有行。我尝试了下面给出的一些代码,但得到了一个空索引。
df1.columns.intersection(df2.columns)
上述代码没有给我我的结果,因为它只给出了具有无值的索引标题。我想要编写一段能够接受两个数据框作为输入并比较列标题以进行选择的代码。我不必硬编码列名。
df1[df1.columns.intersection(df2.columns)]
即可。 - cs95df1
即可。 - cs95df1[df1.columns & df2.columns]
- Zero