【问题标题】:Looping over a Pandas DataFrame yields a ValueError循环遍历 Pandas DataFrame 会产生 ValueError
【发布时间】:2021-04-04 18:59:04
【问题描述】:

我正在尝试遍历具有 71163 行的 Pandas DataFrame,并创建一个值低于 10000 的列表,以便我可以计算它们。到目前为止,我的代码是:

filter_heteroSNPs = []

for element in heteroSNPsSC05:  
  if element < 10000:
    filter_heteroSNPs.append(True)
  else:
    filter_heteroSNPs.append(False)

newarr = heteroSNPs[filter_heteroSNPs]

print(filter_heteroSNPs)
print(newarr) 

但这会返回以下异常:

ValueError: Item wrong length 71163 instead of 891938

有人可以帮我吗?

【问题讨论】:

  • 请张贴数据的样子。当我们不知道 heteroSNPsSC05 是什么结构时,很难提供帮助。
  • 列表只有一列

标签: python pandas numpy loops valueerror


【解决方案1】:

因为您的迭代不正确。您需要在DF的哪一列进行比较?

例如,假设您需要比较列 'my_column' 中的值,那么:

filter_heteroSNPs = [True if value < 10000 else False for value in heteroSNPsSC05['my_column']

这将为您提供所需的过滤器(甚至快 10 倍)

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多