Pandas:选择多个字符串出现多次的行

时间:2014-11-17 20:46:17

标签: python pandas

我有以下数据,想要查找多次显示某组值的行数。

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())

1 个答案:

答案 0 :(得分:2)

所以你可以在这里使用这种数学:

vehicles = {'ford', 'honda', 'toyota', 'steve_urkel_car'} #etc
df[df.isin(vehicles).sum(1) >= 2]