我有以下数据,想要查找多次显示某组值的行数。
date page1 page2 page3 page4
1/2001 entered toyota NaN NaN
1/2001 entered ford NaN NaN
1/2001 entered honda ford left
1/2001 entered ford toyota left
1/2001 entered toyota ford left
1/2001 entered index photo left
我要做的是找到车辆出现两次以上的列数(> = 2)。因此,鉴于上述数据,有两行车辆出现两次。
所以在上一个例子中,我有以下内容。
honda ford 1
ford toyota 1
toyota ford 1
我考虑过通过pandasql攻击这个问题,但我完全不知道我是如何处理这个问题的(这里是新手)。任何人都可以向我提出一些建议或我应该考虑的事项。
此外,我想要做的第二部分是根据组合找到值的计数。这可以按如下方式完成,但如何通过Pandas直接完成。
q = """
SELECT Path_1, Path_2, COUNT(*) FROM df
GROUP BY Path_1, Path_2;
"""
print ps.sqldf(q, locals())
答案 0 :(得分:2)
所以你可以在这里使用这种数学:
vehicles = {'ford', 'honda', 'toyota', 'steve_urkel_car'} #etc
df[df.isin(vehicles).sum(1) >= 2]