gpt4 book ai didi

Python Pandas - 在同一列中查找元素(子字符串)

转载 作者:太空宇宙 更新时间:2023-11-04 05:09:17 28 4
gpt4 key购买 nike

我有一个字符串列 ('b'),我想获取与同一列中的子字符串类似的字符串。例如,在下面的数据框列 'b' 中,world 是 helloworld 的子串,ness 是 greatness 的子串。我想在列表中获取字符串 world 和 ness。您能否提出一个解决方案。

     a           b
0 test world
1 teat helloworld
2 gor bye
3 jhr greatness
4 fre ness

列表中的期望输出

listofsubstrings
Out[353]: ['world', 'ness']

最佳答案

您可以使用:

from itertools import product

#get unique values only
b = df.b.unique()
#create all combination
df1 = pd.DataFrame(list(product(b, b)), columns=['a', 'b'])
#filtering
df1 = df1[df1.apply(lambda x: x.a in x.b, axis=1) & (df1.a != df1.b)]
print (df1)
a b
1 world helloworld
23 ness greatness

print (df1.a.tolist())
['world', 'ness']

交叉连接的替代解决方案:

b = df.b.unique()
df['tmp'] = 1
df1 = pd.merge(df[['b','tmp']],df[['b','tmp']], on='tmp')
df1 = df1[df1.apply(lambda x: x.b_x in x.b_y, axis=1) & (df1.b_x != df1.b_y)]
print (df1)
b_x tmp b_y
1 world 1 helloworld
23 ness 1 greatness

print (df1.b_x.tolist())
['world', 'ness']

关于Python Pandas - 在同一列中查找元素(子字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43485230/

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