Python Pandas - 编写新的 CSV 标题行而不读取/重写整个文件

Posted

技术标签:

【中文标题】Python Pandas - 编写新的 CSV 标题行而不读取/重写整个文件【英文标题】:Python Pandas - Write New CSV Header Row without Reading/ReWriting Entire File 【发布时间】:2017-02-17 15:16:11 【问题描述】:

我有一个 27GB 的 CSV 文件,我想简单地重命名标题行。 我可以在不将整个文件读入数据帧然后再次写入整个文件的情况下执行此操作吗?

这基本上是我想要做的,但无需重写整个 27GB 文件。

data = pd.read_csv(filename,sep="|",nrows=2)
data.head()

LOC_ID  UPC FW  BOP_U   BOP_$
0   17  438531560821    201712  1   40.0
1   239 438550152328    201719  2   28.8


data.columns = ['WHSE','SKU','PERIOD','QUANTITYONHAND','DOLLARSONHAND']
data.head()


   WHSE           SKU  PERIOD  QUANTITYONHAND  DOLLARSONHAND
0    17  438531560821  201712               1           40.0
1   239  438550152328  201719               2           28.8

【问题讨论】:

检查here 所以你想在文件系统上更改文件头? 当然有比 Pandas 甚至 Python 更简单的方法。 看来你得重写文件-info 这最适合类似命令行的 shell 脚本,而不是仅仅为此使用 python/pandas。 【参考方案1】:

只需使用nrows 指定只有一行。

header_df = pd.read_csv('my_file.csv', index_col=0, nrows=1)

至于重写文件,我认为你不必处理整个文件来重写。

【讨论】:

以上是关于Python Pandas - 编写新的 CSV 标题行而不读取/重写整个文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pandas 将新的数据帧行附加到 csv?

Pandas读取csv

pandas为csv添加新的行和列

Python/Pandas/BigQuery:如何使用大量新的时间序列数据有效地更新现有表?

Pandas - 使用 to_csv 编写多索引行

为啥用 Pandas 编写时 CSV 文件比 HDF5 文件小?