小能豆

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

javascript

我正在寻找一种有效的方法来从 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)

任何指点都将不胜感激!


阅读 41

收藏
2024-08-28

共1个答案

小能豆

您遇到的错误可能是由于 Pandas DataFrame 中字符串方法使用不当造成的。您可以使用.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)

解释:

  1. str.extract('(\d+)')
  2. 正则表达式(\d+)用于捕获一个或多个数字。括号()创建一个捕获组,并\d+匹配一个或多个数字。
  3. 这将从列中的每个字符串中提取数字部分result
  4. expand=False
  5. 当 时expand=False,结果以 Series 形式返回,并直接分配回列result

输出:

    time result
0  09:00     52
1  10:00     62
2  11:00     44
3  12:00     30
4  13:00    110

此方法可以有效地删除不需要的字符(例如+-和任何字母)并仅保留列中的数字值result

2024-08-28