pandas的fillna函数影响性能,不要轻易使用

fillna搜索整个DataFrame,把nan值替换为指定的值,速度很慢,影响处理脚本性能。我们的数据处理脚本,fillna一行代码,占了21.8%的处理时间。为了避免不必要的nan填充。我们修改了处理策略,在read_csv中增加了1个参数keep_default_na,设置该参数为Flase(将这个参数设为False之后同时不定义na_values参数,就可以在读取文件时不将任何值转换为缺失值NaN),对缺失值不填充为nan,再加上其它的调整,处理脚本性能提升了1倍:

df_data = pd.read_csv(file_name, dtype=self.dtypes, encoding="GB2312", keep_default_na=False)  # 不转换任何值为NaN

你可能感兴趣的:(python,python)