熊猫-修改每个单元格中的字符串值

cod*_*000 2 python pandas

我有一个熊猫数据框,我需要修改给定列中的所有值。每列将包含相同长度的字符串值。用户为每个值(例如:ex :)[1:3]和替换值提供要替换的索引"AAA"

这会将值1到3的字符串替换为value AAA

如何使用applymap,map或apply函数完成此操作?

谢谢

这是我使用下面标记的答案的最终解决方案:

import pandas as pd

df = pd.DataFrame({'A':['ffgghh','ffrtss','ffrtds'],
                     #'B':['ffrtss','ssgghh','d'],
                     'C':['qqttss',' 44','f']})
print df
old = ['g', 'r', 'z']
new = ['y', 'b', 'c']
vals = dict(zip(old, new))

pos = 2
for old, new in vals.items():
    df.ix[df['A'].str[pos] == old, 'A'] = df['A'].str.slice_replace(pos,pos + len(new),new)
print df
Run Code Online (Sandbox Code Playgroud)

roo*_*oot 5

用途str.slice_replace

df['B'] = df['B'].str.slice_replace(1, 3, 'AAA')
Run Code Online (Sandbox Code Playgroud)

输入样例:

   A         B
0  w   abcdefg
1  x   bbbbbbb
2  y   ccccccc
3  z  zzzzzzzz
Run Code Online (Sandbox Code Playgroud)

样本输出:

   A          B
0  w   aAAAdefg
1  x   bAAAbbbb
2  y   cAAAcccc
3  z  zAAAzzzzz
Run Code Online (Sandbox Code Playgroud)

  • @ josh1234如果这回答了您的问题,请考虑将其标记为答案。在我看来,您正在更改问题的范围,可能值得提出一个新问题。 (2认同)