Подтвердить что ты не робот

Как получить среднее значение столбцов dataframe

                    A        B
DATE                 
2013-05-01        473077    71333
2013-05-02         35131    62441
2013-05-03           727    27381
2013-05-04           481     1206
2013-05-05           226     1733
2013-05-06           NaN     4064
2013-05-07           NaN    41151
2013-05-08           NaN     8144
2013-05-09           NaN       23
2013-05-10           NaN       10

Скажем, у меня есть дата-схема выше. какой самый простой способ получить серию с тем же индексом, которая является средним значением столбцов A и B? в среднем необходимо игнорировать значения NaN. твист заключается в том, что это решение должно быть гибким для добавления новых столбцов в фреймворк данных.

ближайший я пришел

df.sum(axis=1) / len(df.columns)

однако, похоже, это не игнорирует значения NaN

(примечание: я все еще немного новичок в библиотеке pandas, поэтому я предполагаю, что существует очевидный способ сделать это, что мой ограниченный мозг просто не видит)

4b9b3361

Ответ 1

Просто используя df.mean() будет делать правильную вещь (tm) относительно NaNs:

>>> df
                 A      B
DATE                     
2013-05-01  473077  71333
2013-05-02   35131  62441
2013-05-03     727  27381
2013-05-04     481   1206
2013-05-05     226   1733
2013-05-06     NaN   4064
2013-05-07     NaN  41151
2013-05-08     NaN   8144
2013-05-09     NaN     23
2013-05-10     NaN     10
>>> df.mean(axis=1)
DATE
2013-05-01    272205.0
2013-05-02     48786.0
2013-05-03     14054.0
2013-05-04       843.5
2013-05-05       979.5
2013-05-06      4064.0
2013-05-07     41151.0
2013-05-08      8144.0
2013-05-09        23.0
2013-05-10        10.0
dtype: float64

Вы можете использовать df[["A", "B"]].mean(axis=1), если другие столбцы игнорировать.