从列中的字符串中删除不需要的部分

从列中的字符串中删除不需要的部分

我正在寻找一种有效的方法来从DataFrame列中的字符串中删除不需要的部分。


数据看起来像:


    time    result

1    09:00   +52A

2    10:00   +62B

3    11:00   +44a

4    12:00   +30b

5    13:00   -110a

我需要将这些数据修剪为:


    time    result

1    09:00   52

2    10:00   62

3    11:00   44

4    12:00   30

5    13:00   110

我试过了.str.lstrip('+-')。str.rstrip('aAbBcC'),但得到一个错误:


TypeError: wrapper() takes exactly 1 argument (2 given)

任何指针将不胜感激!


不负相思意
浏览 762回答 3
3回答

森林海

data['result'] = data['result'].map(lambda x: x.lstrip('+-').rstrip('aAbBcC'))

江户川乱折腾

我使用pandas替换功能,非常简单和强大,因为你可以使用正则表达式。下面我使用正则表达式\ D来删除任何非数字字符,但显然你可以使用正则表达式获得相当的创意。data['result'].replace(regex=True,inplace=True,to_replace=r'\D',value=r'')

温温酱

在您知道要从dataframe列中删除的位置数的特定情况下,您可以在lambda函数中使用字符串索引来删除这些部分:最后一个字符data['result'] = data['result'].map(lambda x: str(x)[:-1])前两个字符:data['result'] = data['result'].map(lambda x: str(x)[2:])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python