我将np.nan值转换为“-”,我想将平均行添加到新的数据框中,但是我没有得到平均输出。
date col1 col2 col3
2019-10-10 5 2 4
2019-10-11 - 3 0
2019-10-12 7 - -
2019-10-13 0 5 6
2019-10-14 2 - 3
我想要的输出:
date col1 col2 col3
2019-10-10 5 2 4
2019-10-11 - 3 0
2019-10-12 7 - -
2019-10-13 0 5 6
2019-10-14 2 - 3
Avrg. 3.5 3.3 3.25
可以这样做吗?
答案 0 :(得分:0)
使用DataFrame.mask
,将值转换为floats
和mean
,并用DataFrame.loc
添加到最后一行:
#if not DatetimeIndex
#df = df.set_index('date')
df.loc['Avrg.'] = df.mask(df == '-').astype(float).mean()
print (df)
col1 col2 col3
date
2019-10-10 5 2 4
2019-10-11 - 3 0
2019-10-12 7 - -
2019-10-13 0 5 6
2019-10-14 2 - 3
Avrg. 3.5 3.33333 3.25