根据比较将单元格与数组和打印行进行比较

时间:2018-10-22 08:19:10

标签: python arrays pandas dataframe indexing

我是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

任何想法我该怎么做?谢谢你的帮助。

3 个答案:

答案 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]

那行不通吗?