ID | value | score |
---|---|---|
A | 6 | 5 |
A | 8 | 1 |
A | 1 | 4 |
B | 5 | 2 |
B | 4 | 9 |
B | 6 | 8 |
上記のようなデータフレームがあって(csvなどで取り込み)
IDごとにざまざまな処理を行う為groupbyを使います。
グルーピングした後、zscoreを取得したいので関数をかけるのですが
その結果をうまく取り出す方法がわかりません。
同じフレームに値だけ置き換えるように配置したいのですが
いい方法がありましたら、ご教授頂けませんでしょうか。
python
1 2import pandas as pd 3import scipy.stats as sp 4 5df = pd.read_csv("csvのディレクトリ") 6df = df.set_index("ID") 7 8group =df.groupby("ID") 9result = group.apply(sp.zscore, axis=0) 10 11print(result) 12 13>>> 14ID 15A [[0.339683110243, 0.980580675691], [1.01904933... 16B [[0.0, -1.40182605164], [-1.22474487139, 0.862... 17
このようなデータフレームを取得したいです。
ID | value | score |
---|---|---|
A | 0.33968311 | 0.98058068 |
A | 1.01904933 | -1.37281295 |
A | -1.35873244 | 0.39223227 |
B | 0 | -1.40182605 |
B | -1.22474487 | 0.86266219 |
B | 1.22474487 | 0.53916387 |
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。