python - 根据另一个数据框仅更改数据框中整个列的一小部分值
问题描述
假设我有一个如下数据框:
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
这个案子应该如何解决?我不知道“替换”方法是否有效
解决方案
使用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
推荐阅读
- go - 在 Go 中验证国际域名的最佳方法
- c# - C#项目的解决方案中有哪些文件夹?
- sql-server - 如何使用pivot Sql Query将空值转换为0
- ios - 如何在 NSMutableArray 中对对象进行分组并在 Objective-C 中划分为单独的 NSMutableArray
- javascript - 谷歌地图 fitBound 不是第一次放大多条线
- phpunit - Codeception 和 PHPUnit 兼容性
- .net - 缺少部分声明
- arrays - 如何在另一个请求中返回一个 Promise 请求?
- lua - 在所有平台上在 lua 中创建文件夹时遇到问题
- multithreading - 为什么线程越多这个程序越慢?