【问题标题】:How to filter a table of data for matching values in a particular column如何过滤数据表以匹配特定列中的值
【发布时间】:2021-07-18 08:55:30
【问题描述】:

我有一些非常大的表,我正在尝试过滤多个特定值。为简单起见,假设一个表格类似于以下内容:

Column1 Column2 Column3
1 4 7
2 5 8
3 6 9

我想创建一个只包含 Column2 等于 5 或​​ 6 的行的新表。所以新表如下所示:

Column1 Column2 Column3
2 5 8
3 6 9

我当前的代码如下所示: new_table=table[('Column2')==(5 and 6)]

我也尝试过“或”运算符和 5 到 6 之间的逗号。

当我应该得到两行输出时,每个选项都只给我一行输出(中间列有 6 的行)。我应该怎么做?

【问题讨论】:

  • 你使用的是 pandas 还是纯 Python? pandas 是解决此类问题的首选工具。
  • 我使用的是纯 Python。

标签: python dataset filtering


【解决方案1】:

你可以试试这个:

df={'a':[1,2,3],"b":[5,6,7],"c":[9,8,0]}

aa=[df["b"].index(x) for x in df["b"] if x==5 or x==6]

for x in df:
    for c in df[x]:
        b=df[x].index(c)
        if b not in aa:
            df[x].pop(b)
print(df)

我没有检查过大数据的速度,但这可以解决您的问题!如果您有非常大的数据,那么使用pandas 可能是一个简单的解决方案,因为对于这些类型的过滤,有非常简单的工具。

【讨论】:

  • 感谢您抽出宝贵时间回答,但不幸的是,这对我不起作用。我会考虑使用熊猫。
  • @codinggirl17 我错了,我写错了!我已经编辑了答案。请检查。我应该写if b not in aa:,但我写的不好if b in aa:
猜你喜欢
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2020-04-14
  • 2016-01-06
  • 2019-04-04
相关资源
最近更新 更多