熊猫通过一列加入DataFrame和Series

时间:2019-03-28 08:17:12

标签: python pandas

我有一个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

1 个答案:

答案 0 :(得分:2)

Series.mapSeries一起使用:

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']))))