循环遍历 Pandas DataFrame 会产生 ValueError
Posted
技术标签:
【中文标题】循环遍历 Pandas DataFrame 会产生 ValueError【英文标题】:Looping over a Pandas DataFrame yields a 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
是什么结构时,很难提供帮助。
列表只有一列
【参考方案1】:
因为您的迭代不正确。您需要在DF的哪一列进行比较?
例如,假设您需要比较列 'my_column'
中的值,那么:
filter_heteroSNPs = [True if value < 10000 else False for value in heteroSNPsSC05['my_column']
这将为您提供所需的过滤器(甚至快 10 倍)
【讨论】:
以上是关于循环遍历 Pandas DataFrame 会产生 ValueError的主要内容,如果未能解决你的问题,请参考以下文章
pandas.DataFrame.loc好慢,怎么遍历访问DataFrame比较快
pandas.DataFrame.loc好慢,怎么遍历访问DataFrame比较快