forループでDataFrameに処理適用
解決したいこと
forループでDataFrameの値を変えたい
例)
72×11列のデータフレームに対して上から順に6行ずつ取り出して、その中で各列の値(1つ除く)を偏差値化したいです。
下のようなコードを実行したところdfの値が全く変わっていませんでした。(偏差値化ができていない)。
解決方法を教えて下さい。
また処理がより早くなる方法もあればご教授いただきたいです。
該当するソースコード
list_std = ["a", "b", 'c', 'd', 'e', 'f', 'g', 'h', 'i', "j"]
for list in list_std:
df_list = df.loc[0:5,list],df.loc[6:11,list],df.loc[12:17,list],df.loc[18:23,list],df.loc[24:29,list], df.loc[30:35,list],df.loc[36:41,list],df.loc[42:47,list],df.loc[48:53,list],df.loc[54:59,list],df.loc[60:65,list],df.loc[66:71,list]
for e in df_list:
df_std = e.astype(float)
win_mean=df_std.mean()
win_std=df_std.std()
if win_std==0:
e=50.0
else:
e = df_std.apply(lambda x : ((x - win_mean)*10/win_std+50))
自分で試したこと
for e in df_listのところを12回分手書きしたら動きはしましたがありえない位遅かったです。
0