我有一个Pandas DataFrame df
,它存储标签和整数之间的匹配项,还有一个Pandas系列s
,其中包含一系列标签:
print(df)
label id
0 AAAAAAAAA 0
1 BBBBBBBBB 1
2 CCCCCCCCC 2
3 DDDDDDDDD 3
4 EEEEEEEEE 4
print(s)
0 AAAAAAAAA
1 BBBBBBBBB
2 CCCCCCCCC
3 CCCCCCCCC
4 EEEEEEEEE
5 EEEEEEEEE
6 DDDDDDDDD
我想加入这个DataFrame和这个Series,以获得与我的序列s
相对应的整数序列。
这是我的示例的预期结果:
print(df.join(s)["id"])
0 0
1 1
2 2
3 2
4 4
5 4
6 3
答案 0 :(得分:2)
将Series.map
与Series
一起使用:
print (s.map(df.set_index('label')['id']))
0 0
1 1
2 2
3 2
4 4
5 4
6 3
Name: a, dtype: int64
替代方法-注意,如果重复没有错误,但返回最后一个重复行:
print (s.map(dict(zip(df['label'], df['id']))))