CSV文件太大(几个GB),所以我想逐步地对行进行切片,并用数据透视表修改每个切片的DataFrames
,然后组合DataFrames
。
我使用生成器函数按行对数据进行切片,但无法陷入如下情况的'delimeter'
的{{1}}参数中。
pandas.read_csv
运行此代码时,在ipython中出现以下错误:
import pandas as pd
def generator():
for x in range(0,366130,11):
yield pd.read_csv(filename, nrows = x, delimeter='\x01', header=None)
g = generator()
df = next(g)
df
我该如何解决?
答案 0 :(得分:0)
只需将文件分成几块
http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
与其将所有数据集全部一次存储在内存中,不如将其分成多个块
chunksize = 10 ** 6
for chunk in pd.read_csv(filename, chunksize=chunksize):
process(chunk)
OR
您还可以使用Dask库
https://pythondata.com/dask-large-csv-python/
import dask.dataframe as dd
filename = '311_Service_Requests.csv'
df = dd.read_csv(filename, dtype='str')