я пытаюсь следующий пример, где мне нужно группы по столбцам:панды GroupBy на колоннах
import pandas as pd
import numpy as np
y = pd.DataFrame(np.random.randint(0,10, (20,30)).astype(float),
columns = pd.MultiIndex.from_tuples(
list(zip(np.arange(30),
np.random.randint(0,10, (30,))))
))
y.T.groupby(level = 1).agg(lambda x: np.std(x)/np.mean(x))
и она работает. Однако после возвращения ошибки:
y.groupby(level = 1, axis = 1).agg(lambda x: np.std(x)/np.mean(x))
Я что-то не хватает?
Upd: После работы, когда принимают отдельно:
y.groupby(level = 1, axis = 1).agg(np.std)/\
y.groupby(level = 1, axis = 1).agg(np.mean)
Это похоже на ошибку. (Я смог воспроизвести для другого набора данных, который имеет multiindex в столбцах. Всякий раз, когда вы используете функции лямбда, вызывающие функции numpy, она дает ту же ошибку.) Может быть, попробуйте подать отчет об ошибке? https://github.com/pydata/pandas/issues – ayhan
Я сделаю это. Просто чувствовал, что я слишком часто их обманываю;) –