Python 只有当存在一定数量的数值时,熊猫才会取平均值
我有一个具有三个值的数据集,如下所示:Python 只有当存在一定数量的数值时,熊猫才会取平均值,python,pandas,mean,Python,Pandas,Mean,我有一个具有三个值的数据集,如下所示: ID x y z A 1 NA NA A 1 1 0.6 A 1 NA 0.4 B NA NA NA B NA 0.5 1 B NA 0.5 NA ... ID x y z A 1 NA 0.5 B NA 0.5 NA 我想对A和B采用三重的方法,但前提是每个列和组有两个或更多的数值。所以结果应该是这样的: ID x y z A 1 NA NA
ID x y z
A 1 NA NA
A 1 1 0.6
A 1 NA 0.4
B NA NA NA
B NA 0.5 1
B NA 0.5 NA
...
ID x y z
A 1 NA 0.5
B NA 0.5 NA
我想对A和B采用三重的方法,但前提是每个列和组有两个或更多的数值。所以结果应该是这样的:
ID x y z
A 1 NA NA
A 1 1 0.6
A 1 NA 0.4
B NA NA NA
B NA 0.5 1
B NA 0.5 NA
...
ID x y z
A 1 NA 0.5
B NA 0.5 NA
使用
mean
和groupby
得到所有列值的结果。如何添加仅当存在一定数量的数值时才计算平均值的免责声明 我们可以用sum
进行minu count
,然后用count
进行除法。PS:有趣的是,我们在平均值
s=df.groupby('ID').sum(min_count=2)/df.groupby('ID').count()
Out[178]:
x y z
ID
A 1.0 NaN 0.5
B NaN 0.5 NaN
我们可以用sum
进行minu count
,然后用count
进行除法。PS:有趣的是,我们在平均值
s=df.groupby('ID').sum(min_count=2)/df.groupby('ID').count()
Out[178]:
x y z
ID
A 1.0 NaN 0.5
B NaN 0.5 NaN
下面是另一个可能有帮助的解决方案:
以下是另一个可能有帮助的解决方案:
太好了,谢谢!看来min_count在meanperfect中确实很有用,谢谢!看来min_count在平均值上确实有用