我需要找到在CSV输入文件中具有循环引用的行,例如:
start,end,weather
california,arizona,hot
colorado,kansas,cold
arizona,california,hot
上面应该检测到第一行和第三行是循环引用。我目前正在将csv加载到数据库中,并运行自联接查询以确定数据具有循环引用。但是,看看是否有任何方法可以使用Python Pandas来处理。
谢谢!
答案 0 :(得分:1)
您可以过滤df.end Serie中包含df.start Serie值的行。然后,应用第二个过滤器以获取df.start Serie中包含df.end Serie值的行:
df = df.loc[df.start.isin(df.end),:]
df = df.loc[df.end.isin(df.start),:]
df["way"] = df.apply(lambda x: sorted([x["start"], x["end"]]), axis=1)
print(df)
输出将显示0和2行。