pandas :сложный фильтр по строкам DataFrame

Я хотел бы фильтровать строки по функции каждой строки, например.

def f(row):
  return sin(row['velocity'])/np.prod(['masses']) > 5

df = pandas.DataFrame(...)
filtered = df[apply_to_all_rows(df, f)]

Или для другого более сложного, надуманного примера

def g(row):
  if row['col1'].method1() == 1:
    val = row['col1'].method2() / row['col1'].method3(row['col3'], row['col4'])
  else:
    val = row['col2'].method5(row['col6'])
  return np.sin(val)

df = pandas.DataFrame(...)
filtered = df[apply_to_all_rows(df, g)]

Как я могу это сделать?

78
задан JJ for Transparency and Monica 8 March 2019 в 17:21
поделиться