列表迭代将原始列表更改为非

2024-04-23 06:59:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读取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_块转换为数据帧时

^{pr2}$

我得到以下错误:

Exception: All objects passed were None

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

谢谢, 安妮


Tags: 文件csvpandasnewreadchunkssepdelimiter
1条回答
网友
1楼 · 发布于 2024-04-23 06:59:31

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

只需重新创建对象:

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

返回一个新的迭代器。在

相关问题 更多 >