在pd.DataFrame中插入一行而不加载该文件

时间:2018-05-02 17:37:02

标签: python python-3.x pandas

以下代码可以有效地在我的数据集中插入行(要素名称)作为第一个行:

features = ['VendorID', 'mta_tax', 'tip_amount', 'tolls_amount', 'improvement_surcharge', 'total_amount']

df = pd.DataFrame(pd.read_csv(path + 'data.csv', sep=','))
df.loc[-1] = features  # adding a row
df.index = df.index + 1  # shifting index
df = df.sort_index()  # sorting by index

data.csv非常大~10 GB,因此我想知道是否可以直接在文件中插入features行而不加载它!有可能吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您不必将整个文件加载到内存中,使用stdlib csv模块的writer功能将一行添加到文件的末尾。

import csv
import os

with open(os.path.join(path, 'data.csv'), 'a') as f:
    writer = csv.writer(f)
    writer.writerow(features)