我有一个包含 na 值的列,我想根据键根据另一个数据框中的值来填充这些值。我想知道是否有任何简单的方法可以做到这一点。
例子: 我有一个对象及其颜色的数据框,如下所示:
object color
0 chair black
1 ball yellow
2 door brown
3 ball **NaN**
4 chair white
5 chair **NaN**
6 ball grey
我想用以下数据框中的默认颜色填充颜色列中的 na 值:
object default_color
0 chair brown
1 ball blue
2 door grey
所以结果是这样的:
object color
0 chair black
1 ball yellow
2 door brown
3 ball **blue**
4 chair white
5 chair **brown**
6 ball grey
有什么“简单”的方法可以做到这一点吗?
谢谢:)
最佳答案
使用 np.where
并通过将列设置为索引来映射,即
df['color']= np.where(df['color'].isnull(),df['object'].map(df2.set_index('object')['default_color']),df['color'])
或df.where
df['color'] = df['color'].where(df['color'].notnull(), df['object'].map(df2.set_index('object')['default_color']))
object color 0 chair black 1 ball yellow 2 door brown 3 ball blue 4 chair white 5 chair brown 6 ball grey
关于python - 使用来自另一个数据框的合并填充 na 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47176420/