Панды объединяются на table1.x! = Table2.x

Результат деления на ноль, математически говоря, неопределен, который может быть выражен с помощью float / double (поскольку NaN - а не число), однако он не является неправильным в любом фундаментальном смысле.

Поскольку целое число должно содержать определенное числовое значение, при обработке с ним необходимо обнулить ошибку при делении на ноль.

0
задан A story-teller 26 February 2019 в 20:58
поделиться

2 ответа

Это фильтр после перекрестного соединения

p1.assign(key=1).merge(p2.assign(key=1),on='key').loc[lambda x : x['x_x']!=x['x_y']]
Out[29]: 
   x_x  key  x_y
1   -1    1    0
2   -1    1    2
3    0    1   -1
5    0    1    2
6    2    1   -1
7    2    1    0
0
ответ дан WeNYoBen 26 February 2019 в 20:58
поделиться
point = [-1, 0, 1]
ix = pd.MultiIndex.from_product([point, point], names=['a', 'b'])
df = pd.DataFrame(index=ix).reset_index()
df = df[df.a != df.b]

(скорее) эффективно получит вам фрейм данных с уникальными комбинациями двух координат, как при внешнем соединении в SQL:

   a  b
1 -1  0
2 -1  1
3  0 -1
5  0  1
6  1 -1
7  1  0

После этого вы можно получить расстояние с

>>> (df.a - df.b).abs().min()
1
0
ответ дан AKX 26 February 2019 в 20:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: