Я вижу другое поведение при применении одной и той же функции numpy в качестве функции агрегирования groupby или к одному и тому же списку значений, когда задействованы значения nan.
Это относится к np.sum np.min np.max и np.mean
Поведение в качестве функции агрегирования выглядит так же, как если бы использовались np.nansum, np, nanmin и т. Д.
Например
import pandas as pd
import numpy as np
xx = pd.DataFrame([['A', 1., 2., 3.],
['A', 3., np.nan, 4.],
['B', 5., 6., np.nan],
['B', 7., 8., 9.]])
xx.groupby(0).agg(np.sum)
Придает
1 2 3
0
A 4.0 2.0 7.0
B 12.0 14.0 9.0
Но np.array([np.nan,9.]).sum()
или
np.sum(np.array([np.nan,9]))
или
np.sum([np.nan,9])
они все выводят nan
Я бы ожидал, что функция агрегации также выдаст nan
, в то время как вывод, который я должен генерировать с использованием np.nansum
Панды 0.24.2, numpy 1.16.2