熊猫“不允许使用重叠的键和值进行替换” - python

我有这个数据框:

dftrain
      date        store_nbr   item_nbr  units
0   2012-01-01      1           1         0
1   2012-01-01      1           2         0
2   2012-01-01      2           3         0
3   2012-01-01      3           4         0
4   2012-01-01      4           5         0
...

和这个数据框:

dfkey
   store_nbr    station_nbr
0   1                1
1   2                1
2   3                4
3   4                1

我想添加一个dftrain列,其中的station_nbr列与商店号与站号相匹配。

 dftrain
       date       store_nbr   item_nbr  units station_nbr
0   2012-01-01      1           1         0        1
1   2012-01-01      1           2         0        1
2   2012-01-01      2           3         0        1
3   2012-01-01      3           4         0        4
4   2012-01-01      4           5         0        1 

我尝试用dfkey制作字典,然后使用

 dftrain.replace(to_replace= mydict) 

但我认为有一个错误,因为某些商店的车站号相同。

python大神给出的解决方案

您可以使用合并。

http://pandas.pydata.org/pandas-docs/dev/merging.html

pd.merge(dftrain,dfkey,on='store_nbr',how='left')

         date  store_nbr  item_nbr  units  station_nbr
0  2012-01-01          1         1      0            1
1  2012-01-01          1         2      0            1
2  2012-01-01          2         3      0            1
3  2012-01-01          3         4      0            4
4  2012-01-01          4         5      0            1