Как рассчитать медиану для объекта DataFrameGroupBy? - PullRequest
1 голос
/ 17 октября 2019

Вот мой фрейм данных df

            1.1  1.2  1.3  2.1 ... 5.1  6.1 6.2. 6.3.
sample_a    1    1     2    4       2    3   4   2
sample_b    2    3     3    1       1    3   1   2
sample_c    2    4     3    1       1    3   2   2

Я хочу сгруппировать df, извлекая первое число из имени столбца (т.е. взять 1 из 1.1, взять 2 из 2.1, взять 6 из6.1) и суммировать df по медиане.

Это мой желаемый результат:

            1    2    ...   5    6
sample_a    1    4          2    3 
sample_b    3    1          1    2 
sample_c    3    1          1    2 

Так, например, для первого элемента (sample_a, 1) медиана 1.1, 1.2 и 1.3 равна 1.

Это код, который у меня сейчас есть.

df.columns = df.columns.str.extract('([\d])\.\d+',expand=False)
df.groupby(df.columns, axis=1).median(axis=1)

Я не уверен, должна ли ось быть 0 или 1, но в любом случае я получаю KeyError: 'axis'

Когда я пробую следующий код, он работает нормально.

df.columns = df.columns.str.extract('([\d])\.\d+',expand=False)
df.groupby(df.columns,axis=1).sum()

Почему медиана не работает?

1 Ответ

2 голосов
/ 17 октября 2019

Использование groupby вкл. axis=1

df.groupby(df.columns.str[0], axis=1).median()

          1  2  5  6
sample_a  1  4  2  3
sample_b  3  1  1  2
sample_c  3  1  1  2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...