I would like to filter rows by a function of each row, e.g.
def f(row):
return sin(row[\'velocity\'])/np.prod([\'masses\']) > 5
df = pandas.DataFrame(.
I canot comment on duckworthd's answer, but it is not perfectly working. It crashes when the dataframe is empty:
df = pandas.DataFrame(columns=['a', 'b', 'c'])
df[df.apply(lambda x: x['b'] > x['c'], axis=1)]
Outputs:
ValueError: Must pass DataFrame with boolean values only
To me it looks like a bug in pandas, since { } is definitively a valid set of boolean values. For a solution refer to Roy Hyunjin Han's answer.