我在Python中拆分列表时遇到麻烦,我该如何解决?

时间:2017-06-12 22:03:32

标签: python python-2.7 pandas

这是错误: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'

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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