m = 0.03 * len(df)
df[np.all(df.apply(lambda c: c.isin(c.value_counts()[c.value_counts() > m].
    index).as_matrix()), axis=1)]
Pandas: фильтровать кадр данных для слишком частых или слишком редких значений