我正在尝试在数据框中添加一列,以计算数据框列的子集的所有行的平均值。我正在尝试这样做(Min1-Min5
是我想要平均的列子集的名称):
df_temps['MinAvg'] = df_temps[['Min1', 'Min2', 'Min3', 'Min4', 'Min5']].mean(axis=1)
,但它返回一个名为MinAvg
的列,其中包含所有NaN
值。我的数据框中没有NA
或缺少数据点。
已更新:所有最小变量都是从API中提取的字符串类型。因此,我需要根据下面的反馈,使用(.astype(float))将其从字符串更改为浮点!感谢您的帮助!
答案 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)