Python:如果列Y的值在可能值的列表L中,则更新列X的值
有一个包含公交站点ID列表的数据帧,且集线器为“无”。我需要更新数据帧,以便-如果公共汽车站id在列表a_id中,则其对应的集线器应为a,如果在b_id中,则集线器=b,依此类推Python:如果列Y的值在可能值的列表L中,则更新列X的值,python,pandas,Python,Pandas,有一个包含公交站点ID列表的数据帧,且集线器为“无”。我需要更新数据帧,以便-如果公共汽车站id在列表a_id中,则其对应的集线器应为a,如果在b_id中,则集线器=b,依此类推 a = pd.DataFrame(({'stop' : ['10388','10382','10383','10387','10389','25568'],'hub' : ['none', 'none', 'none', 'none', 'none', 'none']})) a_ids = ['10388','1038
a = pd.DataFrame(({'stop' : ['10388','10382','10383','10387','10389','25568'],'hub' : ['none', 'none', 'none', 'none', 'none', 'none']}))
a_ids = ['10388','10382','10383']
b_ids = ['10387','10389','25568','10381']
a
我试过:
a[(a.stop.isin(a_ids)),'hub'] = 'a'
我知道我的方法有缺陷;感谢您的帮助。试试以下方法:
a = pd.DataFrame(({'stop' : ['10388','10382','10383','10387','10389','25568'],
'hub' : ['none', 'none', 'none', 'none', 'none', 'none']}))
a_ids = ['10388','10382','10383']
b_ids = ['10387','10389','25568','10381']
print (a)
# Output
stop hub
0 10388 none
1 10382 none
2 10383 none
3 10387 none
4 10389 none
5 25568 none
只需使用loc
和isin
a.loc[a.stop.isin(a_ids), 'hub'] = 'a'
a.loc[a.stop.isin(b_ids), 'hub'] = 'b'
output:
stop hub
0 10388 a
1 10382 a
2 10383 a
3 10387 b
4 10389 b
5 25568 b