apply
をPandasのユーザー定義関数に使用すると、pythonが追加の配列を作成しているように見えます。私はどうすればそれを取り除くことができますか?ここに私のコードです:Pandasでapplyを使用するときに余分なインデックスがある理由
def fnc(group):
x = group.C.values
out = x[np.where(x < 0)]
return pd.DataFrame(out)
data = pd.DataFrame({'A':np.random.randint(1, 3, 10),
'B':3,
'C':np.random.normal(0, 1, 10)})
data.groupby(by=['A', 'B']).apply(fnc).reset_index()
この奇妙なLevel_2
インデックスが作成されています。私の機能を実行するときにそれを作成することを避ける方法はありますか?
A B level_2 0
0 1 3 0 -1.054134802
1 1 3 1 -0.691996447
2 2 3 0 -1.068693768
3 2 3 1 -0.080342046
4 2 3 2 -0.181869799
あなたは: 'data [data.C <0]'の後にいますか? – MaxU
あなたは何を達成しようとしていますか?それは明白ではなく、 'fnc'でDataFrameを返すのはなぜですか? –
あなたの経験した結果は何ですか?また、まず第一にグループをやっていますか? –