【发布时间】:2018-02-03 18:50:24
【问题描述】:
我想将一个非常大的 csv 文件(每个文件近 1GB!)中的相似行合并为一个。我有兴趣做这样的事情:
之前
First Name | Last Name | Phone Number | Email
John | Doe | 1234 | john@doe.com
Jane | Doe | 4321 | jane@doe.com
John | Doe | 6789 | john@gmail.com
Jane | Doe | 9876 | jane@gmail.com
之后
First Name | Last Name | Phone Number | Email
John | Doe | 1234, 6789 | john@doe.com, john@gmail.com
Jane | Doe | 4321, 9876 | jane@doe.com, jane@gmail.com
也就是说,使用名字和姓氏以及电话和电子邮件组合行,以将它们添加到“列表”中。
谢谢
【问题讨论】:
-
如果你有一个标记为大数据的问题,你可能不应该使用 itertools。
-
我应该使用什么?
-
@TripleNipple 1 GB 肯定是一个大文件,但我会为您的问题删除
bigdata标记,因为您的用例可以在单台机器上处理 1 GB 文件。 -
熊猫解决方案对您有用吗?
-
嗯,你真的可以把整个东西保存在内存中,作为一个列表列表吗?因为那时你可以对其进行排序,然后是
itertools.groupby。或者,也许考虑pandas
标签: python pandas csv dataframe