1
我有一个熊猫数据框,我需要修改给定列中的所有值。每列将包含一个相同长度的字符串值。用户为每个值提供他们想要替换的索引:例如:[1:3]
和替换值"AAA"
。熊猫 - 修改每个单元格中的字符串值
这将替换值为1到3的字符串,值为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
谢谢你,不知道这个功能... – MaxU
@root - 伟大的答案,是有可能的条件添加到此也就是说,如果位置1是“A”而不是“B”? –
您是否只有一个条件,如if-else语句或多个条件,如if-elif-else语句? – root