如何根据另一列填充列中的缺失值

我有一个名为 shoes 的数据框


Brand   Comment

Ugg       NaN

Prada     NaN

Clarks    NaN

Ugg       NaN

Clark     NaN

Prada     Made from horse leather

Prada     Made from pig leather

Prada     NaN

Ugg       Made from Australian cow leather

...

另一个数据框 df_mode 是通过将鞋子数据框中每个鞋子品牌的评论模式取为非空值而获得的


Brand  Comment

Ugg    Made from sheep 

Prada  Made from pig leather

Clarks Made from Cow leather


如何使用 df_mode 数据框中显示的相应模式响应为鞋子数据框中的每个鞋子品牌分配缺失值。


这基本上就是我想要实现的


Brand   Comment

Ugg       Made from sheep

Prada     Made from pig leather

Clarks    Made from Cow leather

Ugg       Made from sheep

Clark     Made from Cow leather

Prada     Made from horse leather

Prada     Made from pig leather

Prada     Made from pig leather

Ugg       Made from Australian cow leather


红糖糍粑
浏览 331回答 3
3回答

蛊毒传说

使用loc和map:shoes.loc[shoes.Comment.isna(), 'Comment'] = shoes.Brand.map(df_mode.set_index('Brand')['Comment'])

慕神8447489

使用 np.whereshoes['Comment']=np.where(shoes['Comment'].isnull(),shoes['Brand'].map(dict(zip(df_mode['Brand']))),df_mode['Comment'],shoes['Comment'])

30秒到达战场

您可以groupby先按品牌列,然后填写缺失值。这是实现:df['Comment'] = df.groupby(['Brand'], sort=False)['Comment'].apply(lambda x: x.ffill().bfill())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python