我有一个包含ID和电子邮件的数据框。我还有一个字典,其中包含作为密钥的id和值作为电话号码。我想在字典上找到它,如果字典中存在id,那么在数据框中创建一个新列并添加电话号码。我想出了如何查看字典中是否存在id而不是如何创建新列:
for wid in mapping_id_phone:
print any(id==wid)
答案 0 :(得分:0)
您可以使用map
:
df['new'] = df.id.map(mapping_id_phone)
样品:
df = pd.DataFrame({'id':[1,2,3]})
mapping_id_phone = {1: '123', 2:'456', 3:'789'}
print (df)
id
0 1
1 2
2 3
df['new'] = df.id.map(mapping_id_phone)
print (df)
id new
0 1 123
1 2 456
2 3 789
如果缺少dict
中的某些值,则会获得NaN
:
df = pd.DataFrame({'id':[1,2,3, 4]})
mapping_id_phone = {1: '123', 2:'456', 3:'789'}
print (df)
id
0 1
1 2
2 3
3 4
df['new'] = df.id.map(mapping_id_phone)
print (df)
id new
0 1 123
1 2 456
2 3 789
3 4 NaN