Python 熊猫:如果列大于x,如何获取选择两列的最大值,否则选择平均值?
我有一个像这样的df,想要添加一个adj-mean,如果两列中的一列(avg或rolling_-mean)为0,则选择max,否则它会得到两列的avgPython 熊猫:如果列大于x,如何获取选择两列的最大值,否则选择平均值?,python,pandas,dataset,data-science,np,Python,Pandas,Dataset,Data Science,Np,我有一个像这样的df,想要添加一个adj-mean,如果两列中的一列(avg或rolling_-mean)为0,则选择max,否则它会得到两列的avg 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
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(轴=1)
出[1]:
滚动平均值平均调整平均值
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值
一种方法是将0视为
NaN
,然后简单地计算平均值
df['adj_-mean']=df.replace({0:np.nan})[[Avg”,“rolling_-mean”]].mean(轴=1)
出[1]:
滚动平均值平均调整平均值
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值
如果你展示了你的尝试和错误结果那就好了你试过什么了吗?这似乎很基本,我道歉。编辑以显示我被代码卡住的地方。谢谢你看过熊猫的文件了吗?或者关于这个主题的任何资源?如果你展示了你的尝试和错误结果会很好。你尝试过什么吗?这似乎很基本,我道歉。编辑以显示我被代码卡住的地方。谢谢你看过熊猫的文件了吗?或者关于这个主题的任何资源?