我的数据框的一列看起来像这样:
[application]
blah/3.14
xyz/5.2
abc
...
...
Run Code Online (Sandbox Code Playgroud)
(代表软件/版本)
我正在努力实现这样的目标:
[application] [name] [ver]
blah/3.14 blah 3.14
xyz/5.2 xyz 5.2
abc abc na <-- this missing value can be filled in with a string too
...
...
Run Code Online (Sandbox Code Playgroud)
正如您已经知道的,我想将列分成两部分,使用“/”作为分隔符。堆栈溢出解决方案建议如下:
tmptbl = pd.DataFrame(main_tbl.application.str.split('/', 1).tolist(), columns= ['name', 'ver'])
main_tbl['name'] = tmptbl.name
main_tbl['ver'] = tmptbl.ver
Run Code Online (Sandbox Code Playgroud)
乍一看看起来不错,但对于没有“/”的列(例如“abc”)它会崩溃。
我还能尝试什么?
我有一个包含列'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)
该列保持与我的示例相同的值.有什么建议?
谢谢