【发布时间】:2019-06-14 03:15:06
【问题描述】:
我有一个大的 csv 文件,我想使用一个条件将它分成几个文件。
这是文件的摘录:
Well Zones Top Bottom
E18 A 4273714.58 412435.8397
E18 B 99966532.9 96167746.15
E18 C 48737298.05 9038801.616
E18 D 42762897.31 23612634.16
E22 A 706299.7065 0
E22 B 17639585.97 8763276.956
E22 C 7535182.443 756105.4564
E22 D 7858392.171 4359022.937
E22 A 202221.3273 0
E23 B 1876003.29 100344.7098
E23 C 39002827.89 32876455.8
E23 D 10856279.73 944615.8366
我需要做的是创建几个文件,每个文件只有一种类型的“区域”,如下所示:
一个 csv 文件:
Well Zones Top Bottom
E18 A 4273714.58 412435.8397
E22 A 706299.7065 0
E22 A 202221.3273 0
另一个 csv 文件:
Well Zones Top Bottom
E18 B 99966532.9 96167746.15
E22 B 17639585.97 8763276.956
E23 B 1876003.29 100344.7098
在网上冲浪我只发现根据行数/行数将大文件分成不同的块...例如下面的代码:
for i,chunk in enumerate(pd.read_csv(file, chunksize=3)):
【问题讨论】:
-
文件有多大?它适合内存吗?
-
既然用的是pandas,有没有试过
DataFrame.groupby() -
@NoufalIbrahim 是的,它适合内存,它不是太大..