Когда я использую apply
для функции, заданной пользователем в Pandas, похоже, что python создает дополнительный массив. Как я могу избавиться от него? Вот мой код:Почему есть дополнительный индекс при использовании в Pandas
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
Что вы пытаетесь достичь. Это не очевидно, и почему вы возвращаете DataFrame в 'fnc'? –
Как вы оцениваете результат и почему вы делаете группу в первую очередь? –