如何在object类型列替换NaN值并同步修改主DataFrame?
解决DataFrame中object类型列NaN值替换不生效的问题
你之前的代码covid_19_df.Country_code.fillna('OT')没生效,是因为Pandas的fillna()默认返回一个新的Series副本,不会直接修改原DataFrame的数据。要让修改作用于主DataFrame,有两种常用方法:
方法一:使用inplace=True参数直接修改原列
这个参数会让方法直接在原数据上执行替换操作,不需要额外赋值:
# 两种列引用方式都可以 covid_19_df.Country_code.fillna('OT', inplace=True) # 或者 covid_19_df['Country_code'].fillna('OT', inplace=True)
方法二:将替换结果重新赋值给原列
把fillna()返回的新Series赋值回原DataFrame的对应列,覆盖原来的数据:
covid_19_df['Country_code'] = covid_19_df['Country_code'].fillna('OT')
扩展:批量处理所有object类型列
如果需要给所有object类型的列统一替换NaN为'OT',可以先筛选出这类列再批量处理:
# 筛选所有object类型的列 object_columns = covid_19_df.select_dtypes(include=['object']).columns # 批量替换NaN covid_19_df[object_columns] = covid_19_df[object_columns].fillna('OT')
内容的提问来源于stack exchange,提问作者Nuro
相关产品推荐
相关产品推荐

