我对 pandas DataFrame 中的一些变量执行了一些简单的 z 变换。在数据框中的总共 216 列中,我转换了其中的 196 列,然后将 197 连接到原始的 216 列,总共 412 列。
然后我使用该to_csv
函数将新数据帧写入 CSV 文件。原始数据约为 300MB,而新数据集为 1.2GB。添加不到两倍的列会导致最终文件的大小增加大约 4 倍,这似乎很奇怪。
代码是:
import pandas as pd
full_data = pd.read_csv('data.csv')
names = full_data.columns.tolist()
names = names[16:-2]
len(names) #197 as expected
transform = (full_data[names] - full_data[names].mean())/full_data[names].std() #Transform has 197 columns as expected.
column_names = transform.columns.tolist()
new_names = {}
for name in column_names:
new_names[name] = name + '_standardized'
transform = transform.rename(columns=new_names)
to_concat = [full_data, transform]
final_data = pd.concat(to_concat, axis=1)
final_data.to_csv('transformed_data.csv', index = False)
第一行数据看起来一切正常。此外,所有三个 DataFrame 之间的行数相同。
我错过了什么吗?有没有更有效的方法将 DataFrames 写入 CSV 文件?