gpt4 book ai didi

python - 查找 Pandas 数据每两行的字符串之间的差异

转载 作者:行者123 更新时间:2023-12-03 15:42:38 25 4
gpt4 key购买 nike

我是python的新手,并且为此苦苦挣扎了一段时间。
我有一个看起来像这样的文件:

    name   seq
1 a1 bbb
2 a2 bbc
3 b1 fff
4 b2 fff
5 c1 aaa
6 c2 acg

其中,name是字符串的名称,seq是字符串。
我想要一个新的列或一个新的数据框,以指示每两行之间没有重叠的差异数。例如,我想要名称[a1-a2],然后是[b1-b2],最后是[c1-c2],序列之间的差异数。

所以我需要这样的东西:
    name   seq   diff  
1 a1 bbb NA
2 a2 bbc 1
3 b1 fff NA
4 b2 fff 0
5 c1 aaa NA
6 c2 acg 2

任何帮助都受到高度赞赏

最佳答案

看起来您想要成对的字符串的jaccard distance。这是使用groupby scipy.spatial.distance.jaccard 的一种方法:

from scipy.spatial.distance import jaccard
g = df.groupby(df.name.str[0])

df['diff'] = [sim for _, seqs in g.seq for sim in
[float('nan'), jaccard(*map(list,seqs))]]
print(df)

name seq diff
1 a1 bbb NaN
2 a2 bbc 1.0
3 b1 fff NaN
4 b2 fff 0.0
5 c1 aaa NaN
6 c2 acg 2.0

关于python - 查找 Pandas 数据每两行的字符串之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61173005/

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