gpt4 book ai didi

python - 如何对具有组合列表的 Pandas 数据框进行分组?

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

我有一个 pandas 数据框,它具有记录相似性的结果。例如,rowid 123 类似于 rowid 512,rowid 123 类似于 681。从技术上讲,所有三行都是相似的。如何对相似的行进行分组?

请注意,我的数据有组合 - 例如 (123,512) 和 (512,123)

import pandas as pd
df = pd.DataFrame({'A': [123,123,512,412,412,536], 'B': [512,681,123,536,919,412]})
df

A B
123 512
123 681
512 123
412 536
412 919
536 412

预期输出

Group1  123
Group1 512
Group1 681
Group2 412
Group2 536
Group2 919

最佳答案

您可以使用 networkx 来确定连接的组。

In [750]: import networkx as nx

In [751]: G = nx.from_pandas_dataframe(df, 'A', 'B') # Create the graph

In [752]: Gcc = nx.connected_components(G)

In [753]: pd.DataFrame([{'id': i, 'group': 'group%s' % (g+1)}
...: for g, ids in enumerate(Gcc) for i in ids])
Out[753]:
group id
0 group1 512
1 group1 681
2 group1 123
3 group2 536
4 group2 412
5 group2 919

关于python - 如何对具有组合列表的 Pandas 数据框进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086731/

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