Идея состоит в том, чтобы максимально быстро преобразовать фрейм данных в соответствии со значениями, характерными для каждого столбца.Для простоты, вот пример, где каждый элемент столбца сравнивается со средним значением столбца, которому он принадлежит, и заменяется на 0, если больше, чем среднее (столбец), или на 1 в противном случае.
In [26]: df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6]]))
In [27]: df
Out[27]:
0 1 2
0 1 2 3
1 4 5 6
In [28]: df.mean().values.tolist()
Out[28]: [2.5, 3.5, 4.5]
Фрагмент ниже, это не реальный код, а скорее пример желаемого поведения.Я использовал apply
метод, но он может быть любым, который работает быстрее всего.
In [29]: f = lambda x: 0 if x < means else 1
In [30]: df.apply(f)
In [27]: df
Out[27]:
0 1 2
0 0 0 0
1 1 1 1
Это забавный пример, но решение должно быть применено к большому фрейму данных, поэтому оно должно быть быстрым.
Ура!