scikit-learn-contrib/sklearn-pandas
DataFrameMapper changes columns types when default=None.
开放
#171 创建于 2018年9月11日
good first issue
仓库指标
- 星标
- (2,850 个星标)
- PR 合并指标
- (30 天内没有已合并 PR)
描述
When I use DataFrameMapper and set up default=None to transform a column, all other columns
types are changed to object. But this does not happen when I have only float and/or int columns
import pandas as pd
import numpy as np
from sklearn_pandas import DataFrameMapper
from sklearn.impute import SimpleImputer
# all numerical columns lead to no error
da = pd.DataFrame({
'a':[1,3,np.nan],
'b': [1.2,2,3]})
print(da.dtypes)
aux_imp = DataFrameMapper([
(['a'], SimpleImputer(strategy='mean'))],
df_out=True, default=None)
da = aux_imp.fit_transform(da)
print(da.dtypes)
# if a column is of str it leads to errors
da = pd.DataFrame({
'a':[1,3,np.nan],
'b': [1.2,2,3],
'c':['c', 'c', 'a']
})
print(da.dtypes)
aux_imp = DataFrameMapper(
[(['a'], SimpleImputer(strategy='mean'))],
df_out=True, default=None)
da = aux_imp.fit_transform(da)
print(da.dtypes)