python - 根据 Pandas 中的其他信息更改数据框中的一小部分列

标签 python pandas dataframe

我有这个数据框

Person      Salary 
John         350
Peter        543
Susan        517
Carl         448

我有另一个数据框,我必须对第一个数据框进行更改

 Attribute    Change
  Person         3
  Salary         2

"Change"的值应该是指改变另一个字母出现的数量,例如"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

关于python - 根据 Pandas 中的其他信息更改数据框中的一小部分列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55112094/

相关文章:

python - 如何将3D reshape 为2D?但我不想丢失中间的括号?

python - 验证失败后从空表单数据中检索空字符串

python - 如何根据数据框的 NAN 百分比删除列?

python - 从分组数据框中获取选定的行

python - Pandas 0.15.2 MultiIndex 与 0.14.1(datetime.date 与 pandas.tslib.Timestamp)

python - 如何使用 smtplib 和 Python 保持 SMTP 连接打开?

python - Pandas:按时间处理数据帧索引中缺失的数据

python - 与没有索引的 Pandas 融化相反

Python Pandas SettingWithCopyWarning 副本与新对象

python - 从具有重复自定义索引的 Dataframe 中删除行并保留具有列最大值的行