import pandas as pd import numpy as np # 元になるDataFrame df = pd.DataFrame(np.random.random([100, 3]), columns=['foo', 'bar', 'baz']) df.head() #=> foo bar baz #=> 0 0.823091 0.711458 0.498393 #=> 1 0.862969 0.410822 0.801163 #=> 2 0.619817 0.720065 0.784882 #=> 3 0.139458 0.072876 0.356514 #=> 4 0.875172 0.953921 0.626421 # 100行いる len(df) #=> 100
これを加工して、新しいDataFrameを作りたい。この時、まず空のDataFrameを作って、そこにカラムを1列ずつ計算して追加していきたい。
下記のように書けばいけるようだ。
# カラムがないindexだけ設定されているDataFrameを作成 df_new = pd.DataFrame(index=df.index, columns=[]) df_new #=> Empty DataFrame #=> Columns: [] #=> Index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... # これにdfを整形したカラムを追加してみる df_new['hoge'] = df.foo ** 2 df_new.head() #=> hoge #=> 0 0.677479 #=> 1 0.744715 #=> 2 0.384173 #=> 3 0.019449 #=> 4 0.765926
このまま1列ずつ追加していくと楽だった。