我正在寻找一种有效的方法来从 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'),但出现错误:
.str.lstrip('+-')
str.rstrip('aAbBcC')
TypeError: wrapper() takes exactly 1 argument (2 given)
任何指点都将不胜感激!
您遇到的错误可能是由于 Pandas DataFrame 中字符串方法使用不当造成的。您可以使用.str访问器结合正则表达式来清理result列,从而获得所需的结果。该str.extract()方法特别适用于仅提取字符串的数字部分,同时忽略不需要的字符。
.str
result
str.extract()
您可以按照以下方式操作:
import pandas as pd # Example data data = { 'time': ['09:00', '10:00', '11:00', '12:00', '13:00'], 'result': ['+52A', '+62B', '+44a', '+30b', '-110a'] } df = pd.DataFrame(data) # Use a regular expression to extract the numeric part of the result column df['result'] = df['result'].str.extract('(\d+)', expand=False) print(df)
str.extract('(\d+)')
(\d+)
()
\d+
expand=False
time result 0 09:00 52 1 10:00 62 2 11:00 44 3 12:00 30 4 13:00 110
此方法可以有效地删除不需要的字符(例如+、-和任何字母)并仅保留列中的数字值result。
+
-