我是python和pandas的新手...所以我正在使用pandas读取并使用.CSV和其他excel文件...现在我有了一个看起来像这样的excel文件:
input[type="text"]
我有数组x [2,4,9,11,20](在我的情况下,数组和excel文件要大得多,但现在我想保持简单),我想比较E列到该数组并打印其中E等于x中的任何值的行...因此输出看起来像:
A B C D E
f - - - - 1
g - - - - 2
h - - - - 4
i - - - - 8
j - - - - 9
任何想法我该怎么做?谢谢你的帮助。
答案 0 :(得分:0)
使用.isin
df = pd.DataFrame({'A': [10,20,30,40,50],
'E':[1,2,4,8,9]})
x = [2,4,9,11,20]
df1 = df.iloc[df[df.isin(x)].dropna(how='all').index]
print (df1)
A E
1 20 2
2 30 4
4 50 9
答案 1 :(得分:0)
您可以对pd.Series.isin
使用布尔索引:
x = [2, 4, 9, 11, 20]
df = df[df['E'].isin(x)]
或者,您可以query
您的数据框:
df = df.query('E in @x')
答案 2 :(得分:-1)
为什么不尝试一个简单的条件条件,不确定我是否正在运行任何代码,这是否行得通。
df[df["E"] in our_array]
那行不通吗?