如何使用循环熊猫将值添加到列

时间:2019-11-12 18:08:51

标签: python pandas loops dataframe

我想知道当我从网络抓取中获取信息时如何动态地更改列的值。

目前,我有这样的事情:

number name 12 NA 13 NA 14 NA 15 NA

我想收到这样的东西:

number name 12 Mike 13 Bob 14 Bobby 15 Mark

我尝试使用以下方法: for number in phone_book: name = get_name() phonebook['names'][number] = name

phonebook.loc[phonebook.index[number], 'name'] = name

但是它只是为所有数字设置了最后一个数字的名称:

number name 12 Mark 13 Mark 14 Mark 15 Mark 如何获得将每个名称添加到其各自编号的方法?

谢谢

2 个答案:

答案 0 :(得分:2)

从您的网上留言中,您可以构建一个看起来像这样的字典:


name = {12: 'Mike', 13: 'Bob', 14: 'Bobby', 15: 'Mark'}

然后您可以映射到现有框架:

df['name']=df['number'].map(name)
df = df.set_index('number')
print(df) 

number   name    
12       Mike
13        Bob
14      Bobby
15       Mark

答案 1 :(得分:0)

您有几种方法可以做到,首先像@Quang Hoang评论:

phonebook.loc[phonebook.number == number, 'names'] = name

您也可以这样:

for number in phone_book:
    name = get_name()
    phonebook[phonebook["number"] == number] = name

或这样:

names = []
for number in phone_book:
    names.append(get_name())
phonebook["name"] = names

请注意,首选方法是第一个。