python - 根据 Pandas 中的其他信息更改数据框中列的一部分
问题描述
我有这个数据框
Person Salary
John 350
Peter 543
Susan 517
Carl 448
我有另一个数据框,其中包含我必须对第一个进行的更改
Attribute Change
Person 3
Salary 2
“更改”的值应该是指更改另一个字母出现的数量,例如“x”。结果应如下所示:
Person Salary
Jxxx 3xx
Pexxx 5xx
Suxxx 5xx
Cxxx 4xx
我怎么能这样做?
解决方案
数据:
import pandas as pd
df = pd.DataFrame({'Person':['John', 'Peter', 'Susan','Carl'],
'Salary':[350,543,517,448]})
change_df = pd.DataFrame({'Attribute':['Person', 'Salary'],
'Change':['3','2']})
解决方案:
for col in df.columns:
k = int(change_df[change_df.Attribute == col].Change)
df[col] = df[col].apply(lambda x: str(x)[:len(str(x))-k]+k*'x')
结果:
Person Salary
0 Jxxx 3xx
1 Pexxx 5xx
2 Suxxx 5xx
3 Cxxx 4xx
推荐阅读
- django - 将“重复”对象添加到 Django 中的表中
- python - 熊猫数据框未正确识别:“元组”实例没有“过滤器”成员
- google-chrome - Web 浏览器是否提供了一种方法来识别它安装的唯一实例?
- path - 如何以正确的路径上传图像 - 图像:属性“图像”需要一个有效的路径名作为 akeneo 中的数据
- javascript - 锐利的图像旋转只工作一次
- c# - 属性的值应该使用方法更新还是在 getter 中确定?
- python - 如何检查字符串是否在$符号后包含数字字符,不包括熊猫中的空格
- javascript - Ajax POST 发送空值
- firebase - Firebase 和 busboy,我是否将整个文件保存在内存中,或者?
- java - 如何将IP地址解析为主机名?