首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提取单个字符串并删除其他类似于DataFrame的字符串

如何提取单个字符串并删除其他类似于DataFrame的字符串
EN

Stack Overflow用户
提问于 2019-09-06 10:29:41
回答 2查看 37关注 0票数 1

我将类别名称与技能名称结合起来,按类别名称对其进行排序。现在我有了列如下所示的表

代码语言:javascript
复制
(Category1) Skill 1
(Category1) Skill 2
(Category1) Skill 3
(Category1) Skill 4
(Category1) Skill 5
(Category1) Skill 6
(Category2) Skill 7
(Category2) Skill 8
(Category2) Skill 9
(Category2) Skill 10
(Category2) Skill 11
(Category2) Skill 12

我只想为每个技能保留一个类别标题,并删除另一个,类似于有类似于此表的表。

代码语言:javascript
复制
(Category1) Skill 1
Skill 2
Skill 3
Skill 4
Skill 5
Skill 6
(Category2) Skill 7
Skill 8
Skill 9
Skill 10
Skill 11
Skill 12

有什么想法吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-06 10:34:05

您可以拆分字符串并检索最后一部分Skill x,以及检查Categoryx被复制的位置,并使用结果替换为拆分的部分:

代码语言:javascript
复制
import numpy as np

m = df.col1.str.split(r'\) ', expand=True)
df['col1'] = np.where(m.duplicated(subset=0), m[1], df.col1)

               col1
0   (Category1) Skill 1
1               Skill 2
2               Skill 3
3               Skill 4
4               Skill 5
5               Skill 6
6   (Category2) Skill 7
7               Skill 8
8               Skill 9
9              Skill 10
10             Skill 11
11             Skill 12

输入数据-

代码语言:javascript
复制
 col1
0    (Category1) Skill 1
1    (Category1) Skill 2
2    (Category1) Skill 3
3    (Category1) Skill 4
4    (Category1) Skill 5
5    (Category1) Skill 6
6    (Category2) Skill 7
7    (Category2) Skill 8
8    (Category2) Skill 9
9   (Category2) Skill 10
10  (Category2) Skill 11
11  (Category2) Skill 12
票数 2
EN

Stack Overflow用户

发布于 2019-09-06 11:28:15

假设您的dataframe(df)列名为'A':

代码语言:javascript
复制
df2 = df.A.str.split(expand=True)
df2[0]=df2[0].mask(df2[0].eq(df2[0].shift())).fillna('')]
df.A = df2.apply(lambda x: ' '.join(x), axis=1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57820325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档