Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将pandas.io.parsers.TextFileReader的输出写入pandas.DataFrame_Python_Pandas - Fatal编程技术网

Python 将pandas.io.parsers.TextFileReader的输出写入pandas.DataFrame

Python 将pandas.io.parsers.TextFileReader的输出写入pandas.DataFrame,python,pandas,Python,Pandas,我有一个大的CSV文件,我正在读它,使用用户定义的输入“num_rows”(行数)在部分块中,使用“chunksize”参数,该参数返回“pandas.io.parsers.TextFileReader”对象,如下所示: num_rows = int(input("Enter number of rows to be processed chunk = pd.read_csv("large_file.csv", chunksize = number_of_rows) for data_chu

我有一个大的CSV文件,我正在读它,使用用户定义的输入“num_rows”(行数)在部分块中,使用“chunksize”参数,该参数返回“pandas.io.parsers.TextFileReader”对象,如下所示:

num_rows = int(input("Enter number of rows to be processed

chunk = pd.read_csv("large_file.csv", chunksize = number_of_rows)

for data_chunk in chunk:
    # some processing
    # Finally, write back results to Pandas DataFrame-
    data_chunk["new_column"] = some_precalculated_value
然而,这种方法显然不起作用。如何将数据块的结果写回原始的Pandas数据帧,在我的例子中,它恰好是“large_file.csv”


谢谢

您所做的不会修改csv,因为每个
数据块都未链接到原始数据。
您可以将每个
数据块
写入单独的csv文件

reader = pd.read_csv("large_file.csv", chunksize = number_of_rows)

for i, data_chunk in enumerate(reader):
    data_chunk["new_column"] = some_precalculated_value
    data_chunk.to_csv("large_file_part{}.csv".format(i))
要使用比内存大的数据(如数据帧),可以使用。如果您执行了上述操作,那么您只需执行以下操作:

import dask.dataframe as dd

ddf = dd.read_csv("large_file_part*.csv")
ddf.to_csv("large_file.csv", single_file=True)
或者,您可以先用dask加载数据帧,然后用它执行计算。

它会自动将您的数据帧分割为多个分区,并以一种惰性的方式执行与常规数据帧一样的操作

您是否只需要第一个
行数
?如果是这样,您可以在
read\u csv
方法中使用
nrows
参数。否,我需要分块读取csv文件,例如,在包含1000000行的文件中,每5000行读取一次(示例)。然后将有200个这样的块(每个块包含5000行)