如何将熊猫数据帧附加到CSV文件COLUMN-WISE?

时间:2018-09-20 14:57:38

标签: python pandas csv

我正在预处理一个具有840.000个样本和400多个特征的大型数据集。我需要将数据帧存储在单个csv文件中以减少内存。因此,我应该避免使用pd.concat,因为它会占用大量内存

我有不同的数据框,具体取决于变量的性质。如何按列追加CSV文件?似乎是:

df_1.to_csv('file.csv', index=False)
df_2.to_csv('file.csv', mode='a', index=False)
df_3.to_csv('file.csv', mode='a', index=False)

创建文件file.csv,然后将df_2和df_3附加在彼此之间。如何按列而不是按行附加它?

示例:

DF1

row1:    variable_a variable_b
row2:       0            1
row3:       1            1
row839999:  0            1

DF2:

row1:    variable_c variable_d
row2:       0            1
row3:       1            1
row839999:  0            1

最终DF

row1:    variable_a variable_b variable_c variable_d
row2:       0            1         0        1
row3:       1            1         1        1 
row839999:  0            1         0        1

2 个答案:

答案 0 :(得分:0)

如果数据位于数据库中,则应使用SQL进行合并,并使用pandas read_sql读取需要的内容。另外,您可以查看Dask(https://dask.pydata.org/en/latest/139)。我没有经验,只是向您指出可能有用的资源。

Dask DataFrame是一个大型并行数据帧,由许多较小的Pandas数据帧组成,并沿索引分割。那可能会解决您的MemoryError问题。试试吧。

答案 1 :(得分:0)

我的解决方案是转换变量的类型。首先,变量为int32,然后转换为int8。然后,它并不需要那么多时间。