我正在计算数据框中每一行的平均值,但即使行中的所有值都是有效数值,平均值仍然是 nan。
所有列的数据类型都是 float64,但所有行的平均值都是 nan。 (图像中的最后一列是平均值)我已从计算中排除了第一列(时间戳列)。我也尝试指定 skipna=True,但即使那样也不起作用。
我用过的语句是df[].mean(axis=0,skipna=True)。 有些行有一些 nan 值,但这些行数的总和只是总行数的一小部分,我希望 skipna=True 部分能够处理 nans。
这可能发生的任何原因以及如何进行?
你可以使用,它对我有用:
df['mean'] = df.iloc[:, [1,2,3,4,5,6,7,8,9]].mean(axis=1)
工作演示如下:
import pandas as pd
df_example = pd.DataFrame({
'DateTime': ['2018-09-15 12:00:00', '2018-09-15 13:00:00', '2018-09-15 14:00:00', '2018-09-15 15:00:00', '2018-09-15 16:00:00', '2018-09-15 17:00:00', '2018-09-15 18:00:00', '2018-09-15 19:00:00', '2018-09-15 20:00:00'],
'Num1': [1, 2, 3, 4, 5, 6, 7, 8, 9],
'Num2': [6, 6, 6, 6, 6, 6, 6, 6, 6]
})
df_example['Mean'] = df_example[['Num1', 'Num2']].mean(axis=1)
print(df_example)
输出
DateTime Num1 Num2 Mean
0 2018-09-15 12:00:00 1 6 3.5
1 2018-09-15 13:00:00 2 6 4.0
2 2018-09-15 14:00:00 3 6 4.5
3 2018-09-15 15:00:00 4 6 5.0
4 2018-09-15 16:00:00 5 6 5.5
5 2018-09-15 17:00:00 6 6 6.0
6 2018-09-15 18:00:00 7 6 6.5
7 2018-09-15 19:00:00 8 6 7.0
8 2018-09-15 20:00:00 9 6 7.5