如何计算具有NaN值的pandas DataFrame的平均值

时间:2016-06-22 15:18:29

标签: python pandas dataframe nan mean

我有一个如下所示的DataFrame(地址键是索引):

address date1 date2 date3 date4 date5 date6 date7 <email> NaN NaN NaN 1 NaN NaN NaN

我想计算一行的平均值,但是当我使用DataFrame.mean(axis=1)时,我得到NaN(在上面的示例中,我想要平均值为1)。即使我使用NaN,我也会获得DataFrame.mean(axis=1, skipna=True, numeric_only=True)。如何获得此DataFrame中行的正确平均值?

1 个答案:

答案 0 :(得分:2)

尽管您的dtypes不是数字因此是NaN值,但您需要使用astype来转换类型:

df['date4'] = df['date4'].astype(int)

那么它会起作用,取决于你如何加载/创建这些数据,那么它应该是你应该在那个阶段纠正的东西而不是作为后处理步骤(如果可能的话)

您可以确认dtypes是什么,但查看df.info()的输出,并且您还可以使用select_dtypes过滤非数字列:df.select_dtypes(include=[np.number])以仅选择数字列< / p>