我想用mean方法填充两列的缺失值。这两个列的类型是float64。
df['col1'].dtypes
dtype('float64')
df['col2'].dtypes
dtype('float64')
字符串
我使用了两种方法来填充列。首先,我用“0”填充nan值。
df.replace(np.nan,0, inplace=True )
型
然后我使用fillna.mean()方法来填充列
df['col1']=df['col1'].fillna(df['col1'].mean(), inplace=True)
型
这是return之类的
Col1
Nan
Nan
Nan
型
我尝试了第二种方法,没有首先将nan值填充为零,而是直接应用均值插补方法,该方法返回“无”。
我不明白我的实现出了什么问题。如果你能帮忙的话,我会很感激的。
2条答案
按热度按时间cgyqldqp1#
一个可能的解决方案(在计算平均值时需要使用
skipna=True
):字符串
qij5mzcb2#
引用问题:“然后我使用fillna.mean()方法来填充列”
df['col1']=df['col1'].fillna(df['col1'].mean(),inplace=True)
删除inplace参数,因为您分配了列。这是第一个错误。
在清除这个错别字后,尽管过去了几年,它仍然完美地工作:pandas DataFrame: replace nan values with average of columns
df.fillna(df.mean())
用一个新鲜的随机示例验证:
个字符
首先不需要将NaN替换为0(在计算均值时也不需要跳过NaN,正如另一个答案所建议的那样)。