不使用 replace() 函数替换一列中的值
replace value in one column without using replace() function
我想在不使用 replace()
函数的情况下替换字符串。
只想使用 pandas
和 numpy
.
示例数据:
# df
Col1
ab1
de4
替换逻辑为:
a
将是 i
b
将是 g
d
将是 m
e
将是 t
1
将是 2
4
将是 3
有什么方法可以创建字典并使用它来识别和替换?
# df
Col1 Col2
ab1 ig2
de4 mt3
您可以为其创建函数并使用应用。
import pandas as pd
df = pd.DataFrame()
df['col'] = ['asdsd', 'xxx', '41xwqa']
def custom_replace(element):
translate_dict = {
'a': 'i',
'b': 'g',
'd': 'm',
'e': 't',
'1': '2',
'4': '3'
}
return_element = ''
for char in element:
try:
return_element += translate_dict[char]
except:
return_element += char
return return_element
df['col'].apply(custom_replace)
您可以使用 translate
.
mapping = 'abde14'.maketrans({
'a': 'i',
'b': 'g',
'd': 'm',
'e': 't',
'1': '2',
'4': '3'
})
df['Col2'] = df.Col1.str.translate(mapping)
如果始终映射到 1 个字符,则此语法可能更紧凑。
mapping = str.maketrans('abde14', 'igmt23')
我想在不使用 replace()
函数的情况下替换字符串。
只想使用 pandas
和 numpy
.
示例数据:
# df
Col1
ab1
de4
替换逻辑为:
a
将是i
b
将是g
d
将是m
e
将是t
1
将是2
4
将是3
有什么方法可以创建字典并使用它来识别和替换?
# df
Col1 Col2
ab1 ig2
de4 mt3
您可以为其创建函数并使用应用。
import pandas as pd
df = pd.DataFrame()
df['col'] = ['asdsd', 'xxx', '41xwqa']
def custom_replace(element):
translate_dict = {
'a': 'i',
'b': 'g',
'd': 'm',
'e': 't',
'1': '2',
'4': '3'
}
return_element = ''
for char in element:
try:
return_element += translate_dict[char]
except:
return_element += char
return return_element
df['col'].apply(custom_replace)
您可以使用 translate
.
mapping = 'abde14'.maketrans({
'a': 'i',
'b': 'g',
'd': 'm',
'e': 't',
'1': '2',
'4': '3'
})
df['Col2'] = df.Col1.str.translate(mapping)
如果始终映射到 1 个字符,则此语法可能更紧凑。
mapping = str.maketrans('abde14', 'igmt23')