如何对具有组合列表的数据帧进行分组?

2024-06-02 07:06:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据帧,它有记录相似性的结果。例如,rowid123类似于rowid512,rowid123类似于681。从技术上讲,这三排都是相似的。如何对相似的行进行分组?你知道吗

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

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

Tags: 数据importdataframepandasdfas记录相似性
1条回答
网友
1楼 · 发布于 2024-06-02 07:06:02

您可以使用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

相关问题 更多 >