У меня есть два множества наборов данных (порядка 10) с различной длиной (каждая строка - это запись), которые должны быть равны числу строк: критерием является binning по нескольким столбцам, от 2 до 4, а затем удалите превышающие записи в одном из двух наборов данных (произвольно выбирая между всеми записями в этом бункере).python: удалять записи из набора данных, сравнивая две гистограммы
настоящее время я использую NumPy, но было бы хорошо использовать панд а.
Поскольку я знаю заранее, один набор данных меньше, чем другой. Моя (наивная, позвольте мне сказать) идея состоит в том, чтобы вычислить две гистограммы (сначала меньшие), вычесть один из другого, чтобы иметь различия в каждом ящике, прогулку наборы данных для удаления превышения записей, НО: Я должен знать, какая запись находится в каком-то бункере!
Фрагмент кода для вычисления гистограмм в python
(два набора данных столбцов для простоты):
import numpy as np
import numpy.random as rd
x = 50*rd.random((100, 5))
np.histogram2d(x[:, 0], x[:, 1], bins=[10, 5])
Есть ли способ, чтобы следить за индексы набора данных при биннинге? Я знаю pandas
Кадры данных могут иметь индексы, поэтому они могут быть естественным выбором, если Я придерживаюсь этого алгоритма.
Есть ли более умный способ сделать это, изменив алгоритм, но придерживаясь python?
делает [numpy.digitize] (https://docs.scipy.org/doc/numpy/reference/generated/numpy.digitize.html) help? –