我有一个由字符串组成的熊猫数据框。我想从字符串末尾删除第n个字符。我有以下代码:
DF = pandas.DataFrame({'col': ['stri0ng']})
DF['col'] = DF['col'].str.replace('(.)..$','')
它不会删除第三到最后一个字符(在这种情况下为0
),而是删除0ng
。结果应为string
,但输出为stri
。我在哪里错了?
答案 0 :(得分:2)
您可能希望将单个字符替换为字符串末尾的n-1
字符:
DF['col'] = DF['col'].str.replace('.(?=.{2}$)', '')
col
0 string
如果您要确保只删除数字(以使某一行中的'string'
不会更改为'strng'
),请使用类似'[0-9](?=.{2}$)'
的名称模式。
答案 1 :(得分:1)
使用pd.Series.str.slice_replace
的另一种方法:
df['col'].str.slice_replace(4,5,'')
输出:
0 string
Name: col, dtype: object