【问题标题】:I am having troubles to split a list in Python, how can I solve it?我在 Python 中拆分列表时遇到问题,我该如何解决?
【发布时间】:2017-06-12 22:03:31
【问题描述】:

这是错误:Python 'list' 对象中的错误消息没有属性 'str'

我正在尝试拆分数据。这是我的代码:

df = {'Name':['XPTO1 - SS1','XPTO2 - SS2','XPTO3 - SS3','ID':['276','323','2045']}

当我尝试使用“-”分隔符拆分第一列时

df['Name1'], df['Name2'] = df['Name'].str.rsplit('-', 1).str

我收到以下错误消息:

'list' object has no attribute 'str'

知道如何解决这个问题吗?

【问题讨论】:

    标签: python python-2.7 pandas


    【解决方案1】:

    您对df['Name'] 的回报是Name 标记下的列表。

    ['XPTO1 - SS1','XPTO2 - SS2','XPTO3 - SS3']
    

    你只想访问这样的元素:

    df['Name'][0]
    

    这是

    XPTO1 - SS1
    

    然后,您可以像这样拆分:

    df['Name1'], df['Name2'] = df['Name'][0].split(' - ')
    

    给出:

    df['Name1'] = 'XPTO1'
    df['Name2'] = 'SS1
    

    如果您想要在破折号左侧和破折号右侧列出所有项目,您可以按如下方式进行:

    df['Name1'] = [item.split(' - ')[0] for item in df['Name']]
    df['Name2'] = [item.split(' - ')[1] for item in df['Name']]
    

    给出:

    ['XPTO1', 'XPTO2', 'XPTO3']
    ['SS1', 'SS2', 'SS3']
    

    【讨论】:

    • 没问题。很高兴我能帮上忙。 :)
    【解决方案2】:

    df['Name'] 是包含 ['XPTO1 - SS1','XPTO2 - SS2','XPTO3 - SS3'] 的列表,而不是字符串。您可能想尝试遍历列表中的每个项目。

    尝试: 对于 df['Name'] 中的项目: df['Name1']= item.rsplit('-',1)

    【讨论】:

      猜你喜欢
      • 2022-06-10
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      相关资源
      最近更新 更多