我有一个包含列'name'的数据框.像'詹姆斯卡梅隆'这样的价值观.我想将它拆分为2个新列'First_Name'和'Last_Name',但数据中没有分隔符,所以我不太清楚如何.我意识到'詹姆斯'处于位置[0]并且'卡梅隆'处于位置[1],但我不确定你是否能够在没有分隔符的情况下认出
df = pd.DataFrame({'name':['James Cameron','Martin Sheen'],
'Id':[1,2]})
df
Run Code Online (Sandbox Code Playgroud)
编辑:
对于我提供的数据框架,Vaishali的回答完美无缺.我创建了该数据帧作为示例.我的真实代码看起来像这样"
data[['First_Name','Last_Name']] = data.director_name.str.split(' ', expand = True)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是一个错误:
'Columns must be same length as key'
Run Code Online (Sandbox Code Playgroud)
该列保持与我的示例相同的值.有什么建议?
谢谢
Vai*_*ali 10
你可以拆分空间
df[['Name', 'Lastname']] = df.name.str.split(' ', expand = True)
Id name Name Lastname
0 1 James Cameron James Cameron
1 2 Martin Sheen Martin Sheen
Run Code Online (Sandbox Code Playgroud)
编辑:处理错误'列必须与键长度相同'.数据可能有一些具有多个空格的名称,例如:George Martin Jr.在这种情况下,一种方法是分割空间并使用第一个和第二个字符串,如果存在则忽略第三个字符串
df['First_Name'] = df.name.str.split(' ', expand = True)[0]
df['Last_Name'] = df.name.str.split(' ', expand = True)[1]
Run Code Online (Sandbox Code Playgroud)