繁体   English   中英

列表迭代将原始列表更改为“无”

[英]list iteration changes original list to None

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

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转换为数据帧时

df = pandas.concat(chunk for chunk in csv_chunks)

我收到以下错误:

Exception: All objects passed were None

因此,尽管我将过滤后的结果重新分配给新对象(csv_chunks_new),但似乎也更改了csv_chunks。 任何想法可能会发生什么?

谢谢,安妮

csv_chunks不是列表,它本身是迭代器。 通过遍历所有元素,您已经用尽了该迭代器。 当您再次遍历它 ,它不再返回元素,并且pandas.concat()抱怨,因为它传递了一个空序列。

只需重新创建对象:

csv_chunks = pandas.read_csv(filepath, sep = DELIMITER,skiprows = 2, chunksize = 1000, converters = {"A": str, "B": str})

返回一个新的迭代器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM