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

Posted

技术标签:

【中文标题】根据比较将单元格与数组和打印行进行比较【英文标题】:Comparing cells with array and printing rows acording to comparison 【发布时间】:2019-03-26 06:31:48 【问题描述】:

我是 python 和 pandas 的新手...所以我正在使用 pandas 来读取和处理 .CSV 和其他 excel 文件...现在我有一个看起来可以这样说的 excel 文件:

  A B C D E
f - - - - 1
g - - - - 2
h - - - - 4
i - - - - 8
j - - - - 9

我有数组 x[2,4,9,11,20](在我的情况下,数组和 excel 文件要大得多,但我现在想保持简单),我想比较列 E到该数组并打印 E 等于 x 中的任何值的行...所以输出看起来像:

  A B C D E
g - - - - 2
h - - - - 4
j - - - - 9

知道我该怎么做吗?谢谢你的帮助。

【问题讨论】:

【参考方案1】:

你为什么不尝试一个简单的条件,不确定这是否可行我没有任何代码在运行。

df[df["E"] in our_array]

这样不行吗?

【讨论】:

【参考方案2】:

使用.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

【讨论】:

【参考方案3】:

您可以将布尔索引与 pd.Series.isin 一起使用:

x = [2, 4, 9, 11, 20]

df = df[df['E'].isin(x)]

或者,您可以query您的数据框:

df = df.query('E in @x')

【讨论】:

以上是关于根据比较将单元格与数组和打印行进行比较的主要内容,如果未能解决你的问题,请参考以下文章

用于比较具有包含日期​​的单元格的列并将特定文本粘贴到另一列的 Vba 代码

如何在谷歌电子表格中将多个单元格与一行中的两个可能值进行比较?

将所有列值与 Excel 中的单个单元格进行比较

将大写单元格与小写单元格分开排序

python 查找单元格与单元格包含项目列表的其他行之间的单元内重复项和重复项。

在Google表格中将具有相同值的多个单元格与一个单元格合并以求平均值