所以我有两个数据框 dfA 和 dfB 。我想根据 dfB 中的行选择 dfA 的几列。这是我的 dfA 的样子:
index abandoned dismiss yes train tram go
0 0.5 9.1 1.4 2.5 2.5 5.6
1 2.4 3.2 1.8 4.9 9.3 3.2
2 1.5 5.7 3.9 2.1 1.1 0.9
这是 dfB 的样子:
index keywords
0 abandoned
1 wanted
2 goes
3 train
4 bold
5 go
6 images
7 links
所以我希望我的 dfC 看起来像这样:
index abandoned train go
0 0.5 2.5 5.6
1 2.4 4.9 3.2
2 1.5 2.1 0.9
这是我的尝试,但它给了我空的数据帧:
dfC= dfB[~dfB["keywords"].isin(dfA)]
有人可以帮助我吗?谢谢
答案 0 :(得分:0)
将DataFrame.loc
与Index.isin
一起使用的过滤器列名称:
dfC = dfA.loc[:, dfA.columns.isin(dfB['keywords'])]
或通过Index.intersection
进行过滤:
dfC = dfA[dfA.columns.intersection(dfB['keywords'])]
print (dfC)
abandoned train go
index
0 0.5 2.5 5.6
1 2.4 4.9 3.2
2 1.5 2.1 0.9