如何基于其他列的某些值替换列的nan值

时间:2019-09-01 10:31:43

标签: python pandas replace nan

我有两列,col1指受教育程度,col2指他们的工作。 col2具有一些nan值,因此我想根据第1列的值替换此nan值。 例如,如果col1 ='bachelor',则col2必须为='teacher' 如果col1 ='high school',那么col2 ='actor'..依此类推,我有7个不同的col1值。

我试图创建一个像这样的函数:

app.use(
    session({
        resave: true,
        saveUninitialized: true,
        secret: process.env.SESSION_SECRET,
        cookie: { maxAge: 1209600000, domain:'.domain.com' }, 
        store: new MongoStore({
            mongooseConnection: mongoose.connection,
            autoReconnect: true
        })
    })
);

然后我将其应用于数据集:

def rep_nan(x):
    if x['col1']=='bachelor':
        x['col2']='teacher'
    elif x['col1']=='blabla':
        x['col2']='blabla'
    .....
    elif x['col1']='high school':
        x['col2']='actor'

但结果是无列

错误在哪里?或者我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以在此处制作字典:

select id, map(name, designation) b from snow

然后我们可以将nan值替换为:

rep_nan = {
    'bachelor': 'tacher',
    'blabla': 'blabla',
    'high school': 'actor'
}

例如:

df.loc[df['col2'].isnull(), 'col2'] = df[df['col2'].isnull()]['col1'].replace(rep_nan)