pandasDataFrameのいくつかの変数に対していくつかの単純なz変換を実行しました。データフレーム内の合計216列のうち、196列を変換してから、197列を元の216列に連結して、合計412列にしました。
次に、このto_csv
関数を使用して、新しいデータフレームをCSVファイルに書き込みました。元のデータは約300MBですが、新しいデータセットは1.2GBです。2倍未満の列を追加すると、最終ファイルのサイズが約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)
データの最初の行ですべてが正常に見えます。また、行数は3つのDataFrameすべてで同じです。
私は何かが足りないのですか?データフレームをCSVファイルに書き込むより効率的な方法はありますか?