2024-06-14 18:09:57 发布
网友
我有两个字段电话号码和电子邮件。我想对来自同一个人的行进行分组,即电话号码或电子邮件必须相同。在
我可以使用groupby吗?我已经做了一个循环算法,使用字典等
示例:
index phone email 0 123 e@b.com 1 123 b@c.com 2 456 c@d.com 3 333 b@c.com 4 443 c@d.coom
我需要熊猫把指数0、1、3归在一起,其余的归在一起
将数据加载到图形中。例如,使用networkx
G = nx.from_pandas_dataframe(df, 'email', 'phone', 'index')
创建一个图,其中在数据帧中列出的每个email和phone之间有一条边,并将相关联的索引作为该边的属性。在
email
phone
然后个体可以被识别为图的connected components:
然后可以找到与每个组件的边关联的索引值。 然后,可以使用索引对原始数据帧进行切片,从而向您显示与单个数据帧关联的所有行:
import pandas as pd import networkx as nx df = pd.DataFrame({'email': ['e@b.com', 'b@c.com', 'c@d.com', 'b@c.com', 'c@d.com'], 'phone': [123, 123, 456, 333, 443], 'index': [0, 1, 2, 3, 4]}) G = nx.from_pandas_dataframe(df, 'email', 'phone', 'index') components = nx.connected_component_subgraphs(G) for cc in components: idx = [dct['index'] for node1, node2, dct in cc.edges(data=True)] group = df.iloc[idx] print(group) print('-'*80)
收益率
将数据加载到图形中。例如,使用networkx
创建一个图,其中在数据帧中列出的每个
email
和phone
之间有一条边,并将相关联的索引作为该边的属性。在然后个体可以被识别为图的connected components:
^{pr2}$然后可以找到与每个组件的边关联的索引值。 然后,可以使用索引对原始数据帧进行切片,从而向您显示与单个数据帧关联的所有行:
收益率
^{4}$相关问题 更多 >
编程相关推荐