在公共列上将字典与数据框合并

时间:2019-02-12 15:37:06

标签: python pandas

我有以下字典:

{
    ('x', 1): 1, 
    ('y', 2): 2, 
    ('z', 3): 3
}

我还有以下数据框:

index   data    common
 0      ('x',1)
 1      ('y',2)
 2      ('z',3)

我想将字典与数据框合并。我想将字典中的键值与数据帧中的数据值进行比较,如果它们相同,则将字典值设置为df.common值。结果字典将是:

index   data      common
 0      ('y',2)      2
 1      ('x',1)      1
 2      ('z',3)      3

我尝试了以下方法:

m = pd.Series(dictionary)
df['common']= m 

我尝试使用map,但这不允许您重新索引多索引值。

1 个答案:

答案 0 :(得分:0)

@DanielMesejo评论的一种方式是:

somelist = [x for x in range(1500, 2701) if x%5==0 and x%7==0]

另一种方式是这样的:

df.assign(common=df.data.map(d))

     data  common
0  (x, 1)       1
1  (y, 2)       2
2  (z, 3)       3

from operator import getitem from functools import partial p = partial(getitem, d) df.assign(common=df.data.apply(p)) data common 0 (x, 1) 1 1 (y, 2) 2 2 (z, 3) 3 是您的字典