【问题标题】:Check whether values in one column exists in a few other columns in a Data Frame (Python)检查一列中的值是否存在于数据框中的其他几列中(Python)
【发布时间】:2022-10-07 22:32:52
【问题描述】:

我正在处理一组员工数据,所有员工都向经理报告。 在数据框中,所有员工都显示为一个 ID,每个 ID 都有一个父 ID(经理的 ID)。 有没有办法检查任何员工的报告线是否直接返回给自己?

示例数据框:

pd.DataFrame({"id":[111,112,113],"parentid":[112,113,111]})

在此示例中,员工 111 向 112 报告,112 向 113 报告,113 向 111 报告。该行成为循环引用。有没有办法检查这种循环引用?

非常感谢!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    这是networkx 将数据作为图表处理的完美用例。

    这是你的图表:

    创建有向图并使用simple_cycles 识别循环引用

    import networkx as nx
    
    G = nx.from_pandas_edgelist(df, source='parentid', target='id',
                                create_using=nx.DiGraph)
    
    list(nx.simple_cycles(G))
    

    输出:[[112, 111, 113]]

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 2021-07-10
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多