我有两列,其中某些条目的数据重叠(并且这样做时几乎相似)。
df = pd.DataFrame(
{'x':[2.1,3.1,5.4,1.9,np.nan,4.3,np.nan,np.nan,np.nan],
'y':[np.nan,np.nan,5.3,1.9,3.2,4.2,9.1,7.8,4.1]
}
)
我希望结果为一列“ xy”,其中当x和y都具有值时包含x和y的平均值,而当x和y中只有一个具有这样的值时包含x或y的平均值:
df['xy']=[2.1,3.1,5.35,1.9,3.2,4.25,9.1,7.8,4.1]
答案 0 :(得分:4)
您在这里:
解决方案
df['xy'] = df[['x','y']].mean(axis=1)
输出
print(df.to_string())
x y xy
0 2.1 NaN 2.10
1 3.1 NaN 3.10
2 5.4 5.3 5.35
3 1.9 1.9 1.90
4 NaN 3.2 3.20
5 4.3 4.2 4.25
6 NaN 9.1 9.10
7 NaN 7.8 7.80
8 NaN 4.1 4.10