我正在寻找一种有效的方法来删除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)
如有任何建议,我们将不胜感激!
发布于 2012-12-03 19:33:52
data['result'] = data['result'].map(lambda x: x.lstrip('+-').rstrip('aAbBcC'))
发布于 2015-01-31 22:57:04
我会使用pandas的替换函数,非常简单和强大,因为你可以使用正则表达式。下面我将使用regex \D来删除任何非数字字符,但显然,使用regex可以获得相当大的创造力。
data['result'].replace(regex=True,inplace=True,to_replace=r'\D',value=r'')
发布于 2014-03-07 07:27:54
在知道要从dataframe列中删除的位置数量的特殊情况下,可以在lambda函数中使用字符串索引来删除这些部分:
最后一个字符:
data['result'] = data['result'].map(lambda x: str(x)[:-1])
前两个字符:
data['result'] = data['result'].map(lambda x: str(x)[2:])
https://stackoverflow.com/questions/13682044
复制相似问题