如何忽略Nan并在数据帧上执行计算?

2024-05-19 12:35:08 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的数据框:

           DP1       DP2       DP3  DP4  DP5
OP1        NaN  0.786232  0.092335  NaN  NaN
OP2  18.782195  0.554774  0.244653  NaN  NaN
OP3  58.570527  0.743150       NaN  NaN  NaN
OP4  87.540171       NaN       NaN  NaN  NaN
OP5        NaN       NaN       NaN  NaN  NaN 

使用上述数据帧,我使用以下cade计算偏移量之和:

sumOff = cumdf.apply(lambda x: x.iloc[:cumdf.index.get_loc(x.last_valid_index())].sum())

但由于Nan值,它显示错误。 我怎样才能解决这个问题


Tags: 数据indexnanop5op2op4op1op3
1条回答
网友
1楼 · 发布于 2024-05-19 12:35:08

我认为您只需要使用^{}删除缺少的值列:

f = lambda x: x.iloc[:cumdf.index.get_loc(x.last_valid_index())].sum()
sumOff = cumdf.dropna(how='all', axis=1).apply(f)
print (sumOff)
DP1    77.352722
DP2     1.341006
DP3     0.092335
dtype: float64

如果需要final Series中的所有列,请添加^{}

sumOff = sumOff.reindex(cumdf.columns)
print (sumOff)
DP1    77.352722
DP2     1.341006
DP3     0.092335
DP4          NaN
DP5          NaN
dtype: float64

相关问题 更多 >