相关疑难解决方法(0)

根据可能不存在于所有值上的分隔符将 pandas 列分成两部分

我的数据框的一列看起来像这样:

[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”)它会崩溃。

我还能尝试什么?

python split pandas

5
推荐指数
1
解决办法
2827
查看次数

将列值拆分为2个新列 - Python Pandas

我有一个包含列'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)

该列保持与我的示例相同的值.有什么建议?

谢谢

python pandas

3
推荐指数
1
解决办法
8972
查看次数

标签 统计

pandas ×2

python ×2

split ×1