将列添加到数据框pandas中的某一行

时间:2016-07-08 14:49:15

标签: python python-2.7 pandas dataframe

我有一个包含ID和电子邮件的数据框。我还有一个字典,其中包含作为密钥的id和值作为电话号码。我想在字典上找到它,如果字典中存在id,那么在数据框中创建一个新列并添加电话号码。我想出了如何查看字典中是否存在id而不是如何创建新列:

for wid in mapping_id_phone:
   print any(id==wid)

1 个答案:

答案 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