首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两列条件不同的熊猫中的两个字符串列组合起来

将两列条件不同的熊猫中的两个字符串列组合起来
EN

Stack Overflow用户
提问于 2021-12-19 17:52:35
回答 5查看 337关注 0票数 7

我有两栏熊猫,数据如下所示。

代码语言:javascript
复制
code fx         category
AXD  AXDG.R     cat1
AXF  AXDG_e.FE  cat1 
333  333.R      cat1
....

还有其他类别,但我只对cat1感兴趣。

我希望组合code列中的所有内容,以及fx列中.之后的所有内容,并将代码列替换为新的组合,而不影响其他行。

代码语言:javascript
复制
code    fx         category
AXD.R   AXDG.R     cat1
AXF.FE  AXDG_e.FE  cat1
333.R   333.R      cat1
.....

这是我的代码,我认为我必须使用regex,但我不知道如何以这种方式组合它。

代码语言:javascript
复制
df.loc[df['category']== 'cat1', 'code'] = df[df['category'] == 'cat1']['code'].str.replace(r'[a-z](?=\.)', '', regex=True).str.replace(r'_?(?=\.)','', regex=True).str.replace(r'G(?=\.)', '', regex=True)

我也不知道如何选择第二列。任何帮助都将不胜感激。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-12-19 17:59:50

还有其他的分类,但我只对cat1感兴趣

您可以使用str.splitseries.where一起添加cat1的扩展:

代码语言:javascript
复制
df['code'] = (df['code'].astype(str).add("."+df['fx'].str.split(".").str[-1])
             .where(df['category'].eq("cat1"),df['code']))

代码语言:javascript
复制
print(df)

     code         fx category
0   AXD.R     AXDG.R     cat1
1  AXF.FE  AXDG_e.FE     cat1
2   333.R      333.R     cat1
票数 3
EN

Stack Overflow用户

发布于 2021-12-19 18:00:56

您可以extract fx的部分并将其附加到code

代码语言:javascript
复制
df['code'] += df['fx'].str.extract('(\..*$)')[0]

产出:

代码语言:javascript
复制
     code         fx category
0   AXD.R     AXDG.R     cat1
1  AXF.FE  AXDG_e.FE     cat1
2   333.R      333.R     cat1

仅限于cat1

代码语言:javascript
复制
df.loc[df['category'].eq('cat1'), 'code'] += df['fx'].str.extract('(\..*$)')[0]
票数 3
EN

Stack Overflow用户

发布于 2021-12-19 18:01:02

您可以使用Series.str.extract

代码语言:javascript
复制
df['code'] = df['code'].astype(str) + np.where(df['category'].eq('cat1'), df['fx'].astype(str).str.extract('(\..+)')[0], '')

输出:

代码语言:javascript
复制
>>> df
     code         fx category
0   AXD.R     AXDG.R     cat1
1  AXF.FE  AXDG_e.FE     cat1
2   333.R      333.R     cat1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70413959

复制
相关文章

相似问题

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