gpt4 book ai didi

python - 根据其他系列更改 Pandas 系列中的元素

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:53 25 4
gpt4 key购买 nike

我有两个 pandas 系列,名字很长,如下所示:

0           abrakadabra
1 hokus pokus
2 lumio
3 flippendo
4 avada kedavra

第二个是短名称:

0           abra
1 kra
2 avada
3 hokus
4 lalala

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

0 abra
1 hokus
2 lumio
3 flippendo
4 avada

创建了以下函数:

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

对于这 2 个短系列,它非常有效。但是,对于较长的函数,在某些情况下,当 value1 不在 value2 中时,函数不保存 serie2 中的名称,而是将 0 放在那里。我找不到我的功能有什么问题。

最佳答案

您可以使用 extract通过 |s2 的所有值加入正则表达式 ORfillna :

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

关于python - 根据其他系列更改 Pandas 系列中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984731/

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