代码之家  ›  专栏  ›  技术社区  ›  Rogue258

使用多个分隔符拆分字符串-在Python中。Getting TypeError:应为字符串或类似对象的字节

  •  0
  • Rogue258  · 技术社区  · 4 年前

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

    名称 运动
    约翰 足球运动NBA,网球
    玛丽 壁球、俄罗斯方块;MMA
    斯科特 板球、网球
    基姆 橄榄球,WNBA;Footy

    我正试图使用“;”来拆分字符串和','作为分隔符。最初,“名称和运动”列的数据类型为“对象”

    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'))
    

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

    1 回复  |  直到 4 年前
        1
  •  2
  •   Carlos    4 年前

    re是一个接收String类型的库,而不是Pandas数据帧列——在这种情况下,您应该使用访问器

    df[['A']] = df['Sport'].str.split(r';,')
    

    我希望它能解决你的问题