gpt4 book ai didi

python - 将 DataFrame 字符串列拆分为 N 个拆分

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:36 24 4
gpt4 key购买 nike

我有一个df

a    name
1 a/b/c
2 w/x/y/z
3 q/w/e/r/t

我想在 '/' 上拆分名称列以获得此输出

id    name    main    sub    leaf
1 a/b/c a b c
2 w/x/y/z w x z
3 q/w/e/r/t q w t

即前两个斜杠分别添加为ma​​insub,和叶子应该在最后一个斜杠后填满单词

我试过用这个,但结果不正确

df['name'].str.split('/', expand=True).rename(columns={0:'main',1:'sub',2:'leaf'})

有没有办法分配列

最佳答案

使用splitassign :

s = df['name'].str.split('/')
df = df.assign(main=s.str[0], sub=s.str[1], leaf=s.str[-1])
print (df)
a name leaf main sub
0 1 a/b/c c a b
1 2 w/x/y/z z w x
2 3 q/w/e/r/t t q w

改变列的顺序:

s = df['name'].str.split('/')
df = df.assign(main=s.str[0], sub=s.str[1], leaf=s.str[-1])
df = df[df.columns[:-3].tolist() + ['main','sub','leaf']]
print (df)
a name main sub leaf
0 1 a/b/c a b c
1 2 w/x/y/z w x z
2 3 q/w/e/r/t q w t

或者:

s = df['name'].str.split('/')
df = (df.join(pd.DataFrame({'main':s.str[0], 'sub':s.str[1], 'leaf':s.str[-1]},
columns=['main','sub','leaf'])))
print (df)
a name main sub leaf
0 1 a/b/c a b c
1 2 w/x/y/z w x z
2 3 q/w/e/r/t q w t

关于python - 将 DataFrame 字符串列拆分为 N 个拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48382219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com