[英]pandas: How do I select rows based on if X number of columns is greater than a number?
[英]pandas: how to get if column is greater than x select the max of two columns otherwise select mean?
我有一个看起来像这样的 df 并且想要添加一个 adj 均值,如果两列(avg 或 rolling_mean)之一为 0,则选择最大值,否则它会获得两列的平均值。
ID Avg rolling_mean adj_mean (goal to have this column)
0 5 0 5
1 6 6.3 6.15
2 5 8 6.5
3 4 0 4
我能够使用此代码获得列的最大值
df["adj_mean"]=df[["Avg", "rolling_mean"]].max(axis=1)
但如果两个值都大于零,则不确定如何添加平均值。
非常感谢!
一种方法是将 0 视为NaN
,然后简单地计算平均值
df['adj_mean'] = df.replace({0: np.nan})[["Avg", "rolling_mean"]].mean(axis=1)
Out[1]:
rolling_mean Avg adj_mean
0 0.0 5 5.00
1 6.3 6 6.15
2 8.0 5 6.50
3 0.0 4 4.00
默认情况下, df.mean()
跳过空值。 根据文档:
skipna : bool,默认 True 计算结果时排除 NA/null 值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.