仅限fillna字符串/对象

时间:2019-07-29 15:32:50

标签: python pandas

我想将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)

2 个答案:

答案 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('')