Нахождение разницы между двумя наборами данных с помощью панд - PullRequest
0 голосов
/ 13 октября 2018

У меня есть два массива, каждый из которых состоит из сотен различных значений, скажем,

list1 = [23.13, 89.50, 12.99, 40.89, ...]

list2 = [45.21, 2.02, 79.89, 20.30, ....]

У меня есть отдельный массив, который указывает индексы записей, которые я хочу сравнить из каждого массива (0 указывает на первую запись в обоих массивах, 434 указывает435-я запись и тд).Давайте назовем этот массив

indx = [0, 12, 304, ...]

Моя цель - взять записи из обоих списков, индекс которых указан в indx, вычесть значенияи сохранить их в другом массиве.Я хотел бы использовать панд, так как большая часть моего кода, чтобы добраться до этого момента, использовала панд.Спасибо.

1 Ответ

0 голосов
/ 13 октября 2018

Если у вас есть

list1 = np.array([23.13, 89.50, 12.99, 40.89])
list2 = np.array([45.21, 2.02 , 79.89, 20.30])

indx = [0, 2, 3]

Тогда просто

>>> list1[indx] - list2[indx]
array([-22.08, -66.9 ,  20.59])

Аналогично, если у вас есть pd.Series вместо np.array,

pd.Series(list1)[indx] - pd.Series(list2)[indx]

0   -22.08
2   -66.90
3    20.59
dtype: float64

Длянесимметричные длины,

nindx = indx[indx < min(map(len, [list1, list2]))]
>>> list1[nindx] - list2[nindx]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...