首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列表迭代将原始列表更改为无

列表迭代将原始列表更改为无
EN

Stack Overflow用户
提问于 2013-07-16 20:54:28
回答 1查看 292关注 0票数 0

我正在读取csv文件,然后进行一些过滤:

代码语言:javascript
运行
复制
csv_chunks = pandas.read_csv(filepath, sep = DELIMITER,skiprows = 2, chunksize = 1000, converters = {"A": str, "B": str})

csv_chunks_new = [chunk[(chunk["A"] + chunk["B"]).isin(acids.tolist())]
          for chunk in csv_chunks]

奇怪的是,当我现在尝试将csv_chunks转换为数据帧时

代码语言:javascript
运行
复制
df = pandas.concat(chunk for chunk in csv_chunks)

我得到以下错误:

代码语言:javascript
运行
复制
Exception: All objects passed were None

因此,尽管我将过滤结果重新分配给一个新对象(csv_chunks_new),但它似乎也更改了csv_chunks。你知道可能发生了什么吗?

谢谢你,安妮

EN

Stack Overflow用户

回答已采纳

发布于 2013-07-16 20:55:46

csv_chunks不是一个列表,它本身是一个迭代器。通过循环遍历所有元素,您已经耗尽了迭代器。当您再次循环遍历它时,它不再返回元素,并且pandas.concat()会报错,因为它被传递了一个空序列。

只需重新创建对象:

代码语言:javascript
运行
复制
csv_chunks = pandas.read_csv(filepath, sep = DELIMITER,skiprows = 2, chunksize = 1000, converters = {"A": str, "B": str})

它返回一个新的迭代器。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17677073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档