在数据框中添加一列,以计算各行的平均值,并返回所有“ NaN”

时间:2018-08-26 01:49:22

标签: python pandas dataframe mean

我正在尝试在数据框中添加一列,以计算数据框列的子集的所有行的平均值。我正在尝试这样做(Min1-Min5是我想要平均的列子集的名称):

df_temps['MinAvg'] = df_temps[['Min1', 'Min2', 'Min3', 'Min4', 'Min5']].mean(axis=1)

,但它返回一个名为MinAvg的列,其中包含所有NaN值。我的数据框中没有NA或缺少数据点。 shows screenshot of column with all NANs

已更新:所有最小变量都是从API中提取的字符串类型。因此,我需要根据下面的反馈,使用(.astype(float))将其从字符串更改为浮点!感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

问题是值类型为string,所以需要将它们转换为float

cols = ['Min1', 'Min2', 'Min3', 'Min4', 'Min5'] 
df_temps['MinAvg'] = df_temps[cols].astype(float).mean(axis=1)

或重新分配转换后的列:

df_temps = df_temps.astype(float)

df_temps['MinAvg'] = df_temps.mean(axis=1)