熊猫-在CSV文件的不同列中查找相同值的更快方法?

时间:2018-08-13 06:46:03

标签: python pandas csv

我需要找到在CSV输入文件中具有循环引用的行,例如:

start,end,weather
california,arizona,hot
colorado,kansas,cold
arizona,california,hot

上面应该检测到第一行和第三行是循环引用。我目前正在将csv加载到数据库中,并运行自联接查询以确定数据具有循环引用。但是,看看是否有任何方法可以使用Python Pandas来处理。

谢谢!

1 个答案:

答案 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行。