向包含“-”的数据框添加平均行

时间:2019-10-23 07:31:22

标签: pandas mean

我将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

可以这样做吗?

1 个答案:

答案 0 :(得分:0)

使用DataFrame.mask,将值转换为floatsmean,并用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