gpt4 book ai didi

python - 使用 Pandas 计算重复项之间的交集

转载 作者:行者123 更新时间:2023-12-01 03:02:47 26 4
gpt4 key购买 nike

我有一个如下所示的数据框:

Symbols Count
A 3
A 1
A 2
A 4
B 1
B 3
B 9
C 2
C 1
C 3

我想要使用 Pandas 来识别“计数”列上的重复行,但我想计算重复项上符号彼此相交的次数。

我的意思是,如果计数值使用两个不同的符号出现两次。这些符号被列为它们之间有一个交集,因为它们共享相同的计数值。

类似这样的事情:

Symbol Symbol Number of Intersections
A B 2
B A 2
C A 3
.....

我确信有一种 Pythonic Pandas 的方式可以做到这一点。但它并没有浮现在脑海中。

最佳答案

让我们使用merge进行自合并,然后使用querygroupby:

df_selfmerge = df.merge(df, on='Count', how="inner").query('Symbols_x != Symbols_y')

(df_selfmerge.groupby(['Symbols_x','Symbols_y'])['Count']
.count()
.reset_index()
.rename(columns={'Symbols_x':'Symbol',
'Symbols_y':'Symbol',
'Count':'Number of Intersections'}))

编辑:在 NaN 值的情况下使用 size() 更安全

(df_selfmerge.groupby(['Symbols_x','Symbols_y'])['Count']
.size()
.reset_index()
.rename(columns={'Symbols_x':'Symbol',
'Symbols_y':'Symbol',
0:'Number of Intersections'}))

输出:

  Symbol Symbol  Number of Intersections
0 A B 2
1 A C 3
2 B A 2
3 B C 2
4 C A 3
5 C B 2

关于python - 使用 Pandas 计算重复项之间的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43660452/

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