我想将fillna与pandas数据框一起使用,但仅用于'object'dtypes。
我相信以下方法可以工作,但如果不需要,则希望避免使用concat。
import pandas as pd
new_df = pd.concat([df.select_dtypes(exclude='object'),
df.select_dtypes('object').fillna('')], axis=1)
答案 0 :(得分:2)
使用np.where()
:
df[:]=np.where(df.dtypes=='object',df.fillna(''),df) #this will assign to same df
要创建新的df:
new_df=df.copy()
new_df[:]=np.where(df.dtypes=='object',df.fillna(''),df)
答案 1 :(得分:1)
您可以使用.loc
:
new_df = df.loc[:, df.dtypes == object].fillna('')