【发布时间】:2020-08-01 16:16:09
【问题描述】:
遇到特定的 str.split 错误问题
我的数据框包含一个数字后跟文本:
(名字是编造的
print(df)
Date Entry
20/2/2019 6 John Smith
20/2/2019 8 Matt Princess
21/2/2019 4 Nick Dromos
21/2/2019 4 Adam Force
21/2/2019 5 Gary
21/2/2019 4 El Chaparro
21/2/2019 7 Mike O Malley
21/2/2019 8 Jason
22/2/2019 7 Mitchell
我只是想在数字后面将条目列一分为二。
我尝试过的代码:
df['number','name'] = df['Entry'].str.split('([0-9])',n=1,expand=True)
ValueError: 传递的项目数错误 3,位置暗示 1
然后我单独尝试了空间:
df['number','name'] = df['Entry'].str.split(" ",n=1,expand=True)
ValueError: 传递的项目数错误 2,位置暗示 1
理想情况下,df 看起来像:
print(df)
Date number name
20/2/2019 6 John Smith
20/2/2019 8 Matt Princess
21/2/2019 4 Nick Dromos
21/2/2019 4 Adam Force
21/2/2019 5 Gary
21/2/2019 4 El Chaparro
21/2/2019 7 Mike O Malley
21/2/2019 8 Jason
22/2/2019 7 Mitchell
我觉得它可能很小,但我似乎无法让它工作。任何帮助都会很棒!非常感谢
【问题讨论】:
-
主要问题只是How to add multiple columns to pandas dataframe in one assignment?。你左边的
df['number','name'] = ...没有意义,应该是df[['number','name']] = ... -
一个更具描述性的标题将是“如何使用 str.split 和 regex 将 pandas 字符串列转换为多个新列”。您从
str.split收到的实际错误消息信息量不是很大。另外,当您的意思是“熊猫数据框”时,不要说“Python 数据框”。