Joa*_*dao 4 python string replace series pandas
我有一个 Pandas 系列高尔夫球分数,我想同时进行多个子字符串替换:
在字典中,我想这看起来像:
reps = {'+' : '', 'E' : '0'}
Run Code Online (Sandbox Code Playgroud)
我尝试过 pandas.Series.str.replace,但这似乎只接受一个参数。到目前为止我所做的是:
series = series.str.replace('+', '')
series = series.str.replace('E', '0')
Run Code Online (Sandbox Code Playgroud)
这可行,但显然形式很差。如何在一行中完成此操作并进行任意数量的编辑?
如果您使用的是python3(这在python2中不起作用),您可以使用pandas.Series.str.translate如下:
import pandas as pd
reps = {'+' : '', 'E' : '0'}
series = pd.Series(['+1', 'E', '+5', '-1'])
print(series)
#0 +1
#1 E
#2 +5
#3 -1
#dtype: object
print(series.str.translate(str.maketrans(reps)))
#0 1
#1 0
#2 5
#3 -1
#dtype: object
Run Code Online (Sandbox Code Playgroud)
验证它是否符合您的预期的更好方法:
print(series.str.translate(str.maketrans(reps)).values)
#array(['1', '0', '5', '-1'], dtype=object)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2378 次 |
| 最近记录: |