使用str.replace()从熊猫数据框中的字符串中删除第n个字符

时间:2020-01-30 00:58:25

标签: python string pandas dataframe

我有一个由字符串组成的熊猫数据框。我想从字符串末尾删除第n个字符。我有以下代码:

DF = pandas.DataFrame({'col': ['stri0ng']})
DF['col'] = DF['col'].str.replace('(.)..$','')

它不会删除第三到最后一个字符(在这种情况下为0),而是删除0ng。结果应为string,但输出为stri。我在哪里错了?

2 个答案:

答案 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