【问题标题】:Splitting strings using multiple delimiters- in Python. Getting TypeError: expected string or bytes-like object在 Python 中使用多个分隔符分割字符串。获取 TypeError:预期的字符串或类似字节的对象
【发布时间】:2023-04-06 15:03:01
【问题描述】:

我的问题是关于在 re.split() 函数中传递的数据。
我有以下数据

Name Sport
John Football;NBA,Tennis
Mary Squash,Tetris;MMA
Scott Cricket,Tennis
Kim Rugby,WNBA;Footy

我正在尝试使用 ';' 拆分字符串和 ',' 作为分隔符。 Name 和 Sports 列的数据类型最初是 'object'

import numpy as np
import pandas as pd
import re
df = pd.read_excel(r'Filepath\sports.xlsx',sheet_name = 'data')
df[['Name','Sport']] = df[['Name','Sport']].astype('string')
print(df.dtypes)
df[['A']] = re.split(r';,',df['Sport'])
df 

转换为字符串后尝试拆分。我收到以下错误。

TypeError: expected string or bytes-like object

我尝试过使用

df[['A']] = re.split(r';,',df['Sport'].astype('string'))

但错误一直存在。有什么建议吗?

【问题讨论】:

  • 发布完整的回溯消息 - 我们不应该猜测错误在哪里。
  • @tdelaney 对此表示歉意。我无法发布完整的追溯消息,因为原始数据是机密的。我在这里生成了示例数据,其中的变量已更改以反映这一点。但是,我明白你的意思,因此我应该发布我在代码块中收到这行代码的错误。希望这可以消除任何疑虑。 df[['A']] = re.split(r';,',df['Sport'])

标签:
python
python-3.x
string
split