基于另一个数据框仅更改数据框中整个列的一部分值

时间:2019-03-08 14:39:24

标签: python pandas dataframe

假设我有一个如下数据框:

df1
     Products    Cost
 0     rice        12
 1     beans       15
 2     eggs        17
 3     Tomatoes    5

我还有另一个具有相同标题的数据框,但是它具有一定的数字,这导致数字的数量变成“ a” 字母。举例。

df2
        Header     quantity
 0      Products       2
 1      Cost           1

哪个应该给我这样的结果:

df3
     Products    Cost
 0    riaa        1a
 1    beaaa       1a
 2    egaa        1a
 3    Tomatoaa    NaN

该案件应如何解决?我不知道“替换” 方法是否有效

1 个答案:

答案 0 :(得分:2)

在创建地图map后使用dict

d={x:x[:-y]+'a'*y for x, y  in zip(df2.Header,df2.quantity)}
df1.Products=df1.Products.map(d)
df1
Out[863]: 
   Products  Cost
0      riaa    12
1     beaaa     3
2      egaa     2
3  Tomaaaaa    11