我有这个DataFrame
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
原文地址:https://www.jb51.cc/python/533211.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。