2024-10-01 11:22:22 发布
网友
我有这样一个数据帧df1
id gender 1 m 2 f 3 u 4
我有这样一个查找数据框
lookupinputcol lookupoutputcol m male f female
我想在df1中生成一个新列,如下所示
id gender lookup_gender 1 m male 2 f female 3 u u 4
joins/merges/concat可以帮助我实现这一点,但是它不会给我第3行中的'u'和第4行中的''的值,因为该记录不在查找表中
通过字典或Series将^{}与^{}或^{}一起使用:
Series
d = dict(zip(df1['lookupinputcol'], df1['lookupoutputcol'])) #alternative solution #d = df1.set_index('lookupinputcol')['lookupoutputcol'] df['lookup_gender_new'] = df['gender'].map(d).fillna(df['gender'])
或:
df['lookup_gender_new'] = df['gender'].replace(d)
或者根据耶斯雷尔的回答创建dict:
dict
d = dict(zip(df1['lookupinputcol'], df1['lookupoutputcol']))
然后使用apply:
apply
df['lookup_gender'] = df.apply(lambda x: d.get(x['gender'],x['gender]),axis=1)
通过字典或} 与^{} 或^{} 一起使用:
Series
将^{或:
或者根据耶斯雷尔的回答创建
dict
:然后使用
apply
:相关问题 更多 >
编程相关推荐