CSV文件很大(几GB),所以我想要一步一步地对行进行切片,并使用pivot修改每个切片的DataFrames,然后组合DataFrames。
我使用了一个生成器函数来按行划分数据,但我无法使用pandas.read_csv中的'delimeter'参数,如下所示。
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当我运行这段代码时,我在ipython中得到了以下错误:
TypeError: Traceback (most recent call last)
<ipython-input-76-7e0eb8a3d8b6> in <module>
----> 1 df1 = next(g)
      2 df1
<ipython-input-75-fae533ab2013> in generator()
      2 #      print("homework_1_1")
      3     for x in range(0,366130,11):
----> 4       yield pd.read_csv(filename, nrows = x, delimeter='\x01', header=None)
      5 
      6 g = generator()
TypeError: parser_f() got an unexpected keyword argument 'delimeter'我该如何解决这个问题呢?
发布于 2019-05-18 20:18:11
只需将文件分成块即可
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)或
你也可以使用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')https://stackoverflow.com/questions/56198717
复制相似问题