首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫系列中元素的变化与其他系列

熊猫系列中元素的变化与其他系列
EN

Stack Overflow用户
提问于 2018-02-26 09:02:18
回答 1查看 60关注 0票数 2

我有两个长名字的熊猫系列,像这样:

代码语言:javascript
复制
0           abrakadabra
1           hokus pokus
2           lumio
3           flippendo   
4           avada kedavra

第二个名字很短:

代码语言:javascript
复制
0           abra
1           kra
2           avada
3           hokus          
4           lalala

目的是检查第一个列表中的任何元素是否包含第二个列表中的元素。如果是这样的话,将元素从一个列表更改为第二个列表中的学徒元素。理想的产出:

代码语言:javascript
复制
0 abra
1 hokus
2 lumio
3 flippendo
4 avada

设立了以下职能:

代码语言:javascript
复制
def common(serie1,serie2):
    for index1,value1 in enumerate(list(serie1)):
         for index2,value2 in enumerate(list(serie2)):
              if value1 in value2:
                  serie2[index2]=value1
              else:
                  serie2[index2]=value2
    return serie2

对于这两个短剧,它工作得很完美。但是,对于较长的一个函数,当serie2不在value2时,函数不保存来自value2的名称,而将0放在那里。我找不到我的功能出了什么问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-26 09:06:09

您可以使用extracts2 by |的所有值连接起来,用于正则表达式ORfillna

代码语言:javascript
复制
pat = r'({})'.format('|'.join(s2))
#for exact match
#pat = r'(\b{}\b)'.format('|'.join(s2))
s = s1.str.extract(pat, expand=False).fillna(s1)
print (s)
0         abra
1        hokus
2        lumio
3    flippendo
4        avada
Name: A, dtype: object
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48984731

复制
相关文章

相似问题

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