【发布时间】:2019-05-22 21:31:21
【问题描述】:
我是 Python 的初学者。我有大约 1000 个 CSV 文件(1.csv、2.csv....1000.csv)。每个 CSV 文件有大约 3,000,000,000 行和 14 个变量。我想首先对每个 CSV 文件使用相同的过程来清理每个 CSV 文件中的数据:
- 对变量 A 和变量 B 求和,
- 按排序日期计算C,如果C中一天的记录数大于50,则丢弃。
接下来,将清理后的数据保存到新的 CSV 文件中。最后,将所有 1000 个新的 CSV 文件追加到一个 CSV 文件中。
我有一些代码如下,但它先导入所有CSV文件,然后处理清理数据,效率非常低。我想先清理每个 CSV 文件中的数据,然后附加新的 CSV 文件。谁可以帮我这个事?任何帮助将不胜感激。
【问题讨论】:
-
您需要向我们展示您尝试过的内容,并且可能需要与MVCE 对齐的示例输入/输出
-
1000 个文件,每个文件有 30 亿行?这听起来像是数据库的工作,而不是 Python。您可以使用 Python 读取 CSV 文件并将它们导入数据库,然后通过数据库进行处理。另外,“变量”是什么意思? CSV 文件不包含变量。你是说列吗?
-
这看起来像是一个熊猫问题,而不仅仅是一个 python 问题。我这么说只是因为您使用带有两行标题数据的
pandas.read_csv()。否则,您可以使用 python 的内置 csv 模块进行清理并创建新的 CSV 集。当然,您仍然可以这样做,但您需要在csv.DictReader() 中显式设置字段名,然后忽略前两个标题行。如果这是您愿意采用的方法,请发布您的一个文件的前几行,我或其他人可以提供帮助。