簡體   English   中英

Write output of pandas.io.parsers.TextFileReader to pandas.DataFrame

[英]Write output of pandas.io.parsers.TextFileReader to pandas.DataFrame

我有一個大型 CSV 文件,我正在使用用戶定義的輸入“num_rows”(行數)在部分塊中讀取該文件,使用“chunksize”參數,該參數返回“pandas.io.parsers.TextFileReader”ZA8CFDE69AC31BD466696 如下

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

但是,這種方法顯然行不通。 我如何 go 關於將塊的結果寫回原始 Pandas DataFrame,在我的情況下恰好是“large_file.csv”?

謝謝!

您所做的不會修改 csv 因為每個data_chunk都沒有鏈接到原始數據。
您可以將每個data_chunk寫入單獨的 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))

要使用大於 memory 的數據,例如 dataframe,您可以使用dask 如果您執行了上述操作,那么您只需要執行以下操作:

import dask.dataframe as dd

ddf = dd.read_csv("large_file_part*.csv")
ddf.to_csv("large_file.csv", single_file=True)

或者,您可以最初使用 dask 加載 dataframe,並使用它執行計算。
它會自動將您的 dataframe 拆分為多個分區,並像普通的 pandas dataframe 一樣以懶惰的方式執行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM