我有一个如下所示的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中行的正确平均值?
答案 0 :(得分:2)
尽管您的dtypes不是数字因此是NaN
值,但您需要使用astype
来转换类型:
df['date4'] = df['date4'].astype(int)
那么它会起作用,取决于你如何加载/创建这些数据,那么它应该是你应该在那个阶段纠正的东西而不是作为后处理步骤(如果可能的话)
您可以确认dtypes是什么,但查看df.info()
的输出,并且您还可以使用select_dtypes
过滤非数字列:df.select_dtypes(include=[np.number])
以仅选择数字列< / p>