pandas .DataFrame.agg () функция, возвращающая пустой фрейм данных, если категориальный столбец только NaN - PullRequest
0 голосов
/ 21 февраля 2020

вариант 1) не работает -> возвращает пустое значение df
- первый столбец: числовой, второй столбец: категориальный
- 100% категориального столбца - NaN

In[1]:
df =      a   c
      0  2.0 NaN
      1  4.0 NaN
      2  NaN NaN
      3  3.0 NaN

df["c"].astype("category", inplace=True)
df.agg({"a": "mean", "c": "mode"})

Out[1]:
Empty DataFrame
Columns: [a, c]
Index: []

Вариант 2) рабочий
- Первый столбец: числовой, Второй столбец: категориальный
- Не 100% значений столбца - это NaN

In[2]:
df =      a   c
      0  2.0 "hello"
      1  4.0 "bye"
      2  NaN "bye"
      3  3.0 NaN

df["c"].astype("category", inplace=True)
df.agg({"a": "mean", "c": "mode"})

Out[2]:
     a   c
0  3.0  bye

Вариант 3) работает
- первый столбец: числовой, второй столбец: числовой
- 100% второго числового столбца - NaN

In[3]:
df =      a   c
      0  2.0 NaN
      1  4.0 NaN
      2  NaN NaN
      3  3.0 NaN

df.agg({"a": "mean", "c": "mean"})

Out[3]:
a    4.0
c    NaN
dtype: float64

при использовании pandas версия 0.25.1

...