如果我计算一个groupby对象的平均值,并且在其中一个组内有一个NaN(s),那么NaN会被忽略。即使应用np.mean,它仍然只返回所有有效数字的平均值。我希望一旦组内有一个NaN,就返回NaN的行为。这里有一个行为的简化例子
import pandas as pd
import numpy as np
c = pd.DataFrame({'a':[1,np.nan,2,3],'b':[1,2,1,2]})
c.groupby('b').mean()
1 1.5
2 3.0
c.groupby('b').agg(np.mean)
1 1.5
2 3.0
我想收到以下结果。
1 1.5
2 NaN
我知道我可以事先替换NaN,而且我也许可以自己写一个聚合函数,只要NaN在组内,就返回NaN。不过这个函数不会被优化。
你知道有什么参数可以用优化后的函数实现所需的行为吗?
Btw,我认为所需的行为在pandas的前一个版本中已经实现。