gpt4 book ai didi

python - Pandas 中的组合聚合

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

我有这种格式的数据

ID Val
1 A
1 B
1 C
2 A
2 C
2 D

我想按每个 ID 的数据分组,查看存在的组合并将多个组合相加。结果输出应该是这样的

v1 v2 count
A B 1
A C 2
A D 1
B C 1
C D 1

有没有一种聪明的方法来获得这个而不是遍历每个可能的组合?

最佳答案

这应该有效:

>>> ts = df.groupby('Val')['ID'].aggregate(lambda ts: set(ts))
>>> ts
Val
A set([1, 2])
B set([1])
C set([1, 2])
D set([2])
Name: ID, dtype: object
>>> from itertools import product
>>> pd.DataFrame([[i, j, len(ts[i] & ts[j])] for i, j in product(ts.index, ts.index) if i < j],
... columns=['v1', 'v2', 'count'])
v1 v2 count
0 A B 1
1 A C 2
2 A D 1
3 B C 1
4 B D 0
5 C D 1

关于python - Pandas 中的组合聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24476709/

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