首页 > 解决方案 > 根据另一个数据框仅更改数据框中整个列的一小部分值

问题描述

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

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

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

标签: pythonpandasdataframe

解决方案


使用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

推荐阅读