【问题标题】: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]]