我有一个数据框df1
和列表x
:
In [22] : import pandas as pd
In [23]: df1 = pd.DataFrame({'C': range(5), "B":range(10,20,2), "A":list('abcde')})
In [24]: df1
Out[24]:
A B C
0 a 10 0
1 b 12 1
2 c 14 2
3 d 16 3
4 e 18 4
In [25]: x = ["b","c","g","h","j"]
我想要做的是根据列表选择数据框中的行。 返回
A B C
1 b 12 1
2 c 14 2
这样做的方法是什么? 我试过这个但是失败了。
df1.join(pd.DataFrame(x),how="inner")
答案 0 :(得分:7)
使用isin
返回一个布尔索引,供您索引df:
In [152]:
df1[df1['A'].isin(x)]
Out[152]:
A B C
1 b 12 1
2 c 14 2
这是isin
返回的内容:
In [153]:
df1['A'].isin(x)
Out[153]:
0 False
1 True
2 True
3 False
4 False
Name: A, dtype: bool
答案 1 :(得分:0)
使用df [df [“ column”]。isin(values)]