从列标题中删除下列字符之前的所有字符:

2024-03-29 13:07:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列的名字是这样的:

1:Arnston 2:Berg 3:Carlson 53:Brown

我想去掉:之前的所有字符。我知道我可以重命名这些列,但这将是相当乏味的,因为我的数字增加到100。在

我想要的输出是:

阿恩斯顿伯格卡尔森布朗


Tags: 数字名字字符重命名brownbergcarlsonarnston
3条回答
import re
s = '1:Arnston 2:Berg 3:Carlson 53:Brown'
s_minus_numbers = re.sub(r'\d+:', '', s)

抓住你

^{pr2}$

假设你有一个像这样的框架:

>>> df
   1:Arnston  2:Berg  3:Carlson  53:Brown
0          5       0          2         1
1          9       3          2         9
2          9       2          9         7

可以使用矢量化字符串运算符在第一个冒号处拆分每个条目,然后获取第二部分:

^{pr2}$

IMO的最佳解决方案是在列上使用pandas的str属性。这允许使用正则表达式而不必导入re

df.columns.str.extract(r'\d+:(.*)')

其中regex的意思是:选择一个或多个数字(\d+)和冒号(:)后面的所有内容((.*))。在

相关问题 更多 >