首页 > 解决方案 > 根据 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

我怎么能这样做?

标签: pythonpandasdataframe

解决方案


数据:

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

推荐阅读