1
私はパンダで.apply()
の機能を実行していますが、機能に.Series.mean()
を使用すると何かがうまくいかない場合があります。ここ は私のコードです:pandas.Series.mean()または.apply()に何か問題があります
In[1]: column = ['UserInfo_2', 'UserInfo_4','info_1', 'info_2', 'info_3','target']
value = [['a', 'b', 'a', 'c', 'b', 'a'],
['a', 'c', 'b', 'c', 'b', 'b'],
range(0, 11, 2),
range(1, 12, 2),
range(15, 21),
[0, 0, 1, 0, 1, 0]
]
master_train = pd.DataFrame(dict(zip(column, value)))
In[2]: def f(group):
return pd.DataFrame({'original': group,'demand':group-group.mean()})
In[3]: master_train.groupby('UserInfo_2')['info_1'].apply(f)
Out[3]:
demand original
0 -4.666667 0
1 -3.000000 2
2 -0.666667 4
3 0.000000 6
4 3.000000 8
5 5.333333 10
info_1
の平均値は、実際に5ですが、abrove結果からので、私は混乱しています、7
何が問題になっていますへの4.666667からの平均変化?
をそれは '最初のmean'であることは、カラム
UserInfo_2
からグループによって列info_1
からSeries
を返す -f
を機能させるprint(group)
を追加することも可能です'UserInfo_2'(10 + 4 + 0)/ 3 = 4.6666の' a 'でグループ化します。 2番目の 'b'は(8 + 2)/ 2 = 5です。 – jezrael' group'と 'master_train ['info_1']'の違いは何ですか?私は、2つのコードの「オリジナル」が同じであるという事実と混同しています。 –
私はデバッグが最高だと思っています。 – jezrael