pandas: filter rows of DataFrame with operator chaining
I'm not entirely sure what you want, and your last line of code does not help either, but anyway:
"Chained" filtering is done by "chaining" the criteria in the boolean index.
In [96]: dfOut[96]: A B C Da 1 4 9 1b 4 5 0 2c 5 5 1 0d 1 3 9 6In [99]: df[(df.A == 1) & (df.D == 6)]Out[99]: A B C Dd 1 3 9 6
If you want to chain methods, you can add your own mask method and use that one.
In [90]: def mask(df, key, value): ....: return df[df[key] == value] ....:In [92]: pandas.DataFrame.mask = maskIn [93]: df = pandas.DataFrame(np.random.randint(0, 10, (4,4)), index=list('abcd'), columns=list('ABCD'))In [95]: df.ix['d','A'] = df.ix['a', 'A']In [96]: dfOut[96]: A B C Da 1 4 9 1b 4 5 0 2c 5 5 1 0d 1 3 9 6In [97]: df.mask('A', 1)Out[97]: A B C Da 1 4 9 1d 1 3 9 6In [98]: df.mask('A', 1).mask('D', 6)Out[98]: A B C Dd 1 3 9 6