根据另一个数据集的行值选择列

时间:2020-04-05 06:25:10

标签: python pandas

所以我有两个数据框 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)]

有人可以帮助我吗?谢谢

1 个答案:

答案 0 :(得分:0)

DataFrame.locIndex.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
相关问题