首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python :如何获取标记在单元格数据中的位置号,该标记由符号(X)分隔

Python :如何获取标记在单元格数据中的位置号,该标记由符号(X)分隔
EN

Stack Overflow用户
提问于 2022-02-20 03:58:43
回答 2查看 36关注 0票数 0

我有如下数据:

代码语言:javascript
复制
Car        Code          DOMAINS_616
Proton     CFC_HIC_U1    PRA_U1|PRD_U1|CFC_HIC_U1|CFC_HPC_U1|CFC_HIC_U1
Perudua    CFC_HVC_U1    PRA_U1|PRD_U1|CFC_HVC_U1|CFC_HPC_U1|CFC_HIC_U1
Toyota     CFC_HIC_U1    PRA_D1|PRD_D1|CFC_HKC_U1|CFC_HPC_U1|CFC_HOC_U1
Proton     CFC_HPC_U1    PRE_U1|PRD_U1|CFC_HPC_U1|CFC_HPC_U1|CFC_HOC_U1

根据代码列,我希望知道DOMAINS_616的位置号,该位置号将按如下所示的希望输出来分隔:

代码语言:javascript
复制
Car        Code          DOMAINS_616                                       Position
Proton     CFC_HIC_U1    PRA_U1|PRD_U1|CFC_HIC_U1|CFC_HPC_U1|CFC_HIC_U2    3
Perudua    CFC_HVC_U1    PRA_U1|PRD_U1|CFC_HVC_U1|CFC_HPC_U1|CFC_HIC_U1    3
Toyota     CFC_HIC_U1    PRA_D1|PRD_D1|CFC_HKC_U1|CFC_HPC_U1|CFC_HIC_U1    5   
Proton     CFC_HPC_U1    PRE_U1|PRD_U1|CFC_HLC_U1|CFC_HPC_U1|CFC_HOC_U1    4

有人有主意吗?

EN

回答 2

Stack Overflow用户

发布于 2022-02-20 04:53:49

如果Code只出现一次,而在DOMAINS_616中只出现一次

首先,我们将DOMAINS_616分解成一个列表,并将其炸开。

代码语言:javascript
复制
step1 = df.assign(dummy=df['DOMAINS_616'].apply(lambda x: list(enumerate(x.split('|'), 1)))).explode('dummy')

然后将dummy列展开为Positiondomain列。

代码语言:javascript
复制
step1[['Position', 'domain']] = step1['dummy'].apply(pd.Series)

最后,保留Codedomain匹配的行

代码语言:javascript
复制
step1[step1['Code']==step1['domain']].drop(columns=['dummy', 'domain'])
票数 1
EN

Stack Overflow用户

发布于 2022-02-20 05:06:36

df['Position'] = df.apply(lambda row: row['DOMAINS_616'].split(|).index(row['Code'])+1, axis = 1)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71191276

复制
相关文章

相似问题

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