【发布时间】:2022-01-20 22:34:21
【问题描述】:
我有一个混合类型的数据框 - 字符串、浮点数、整数、布尔值。
pd.DataFrame({'a': [6.6, -5.2, 2.1, float('NaN'), float('NaN')],
'b': ['a', 'a', 'NaN', 'b', 'NaN'],
'c': [True, True, False, float('NaN'), float('NaN')],
'd': [1,2,3,None, None]})
这些列中的大多数都有一些 NaN。 我想根据一些自定义规则来估算缺失值: 对于每个浮点类型列 - 取该列的中值并估算。 对于每个字符串列 - 采用模式和估算。 对于每个整数列 - 取中位数、ceil 和 impute。 对于每个 bool 列 - 用 False 估算缺失值。
这就是我到目前为止所做的:
fill_na_policy = {'float64': np.median(),
'int': np.ceil(np.median()),
'string': scipy.stats.mode(),
'bool': False}
df.fillna(df.dtypes.replace(fill_na_policy), inplace=True)
请告知如何使其工作,或者我应该为每种类型创建 lambda 函数?
【问题讨论】:
标签: python-3.x pandas dataframe missing-data fillna