GEOPANDAS .sjoin 'index_left' и 'index_right' не могут быть именами в объединяемых фреймах - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь сделать пространственное объединение двух фреймов геоданных.

Оба индекса имеют следующий вид: RangeIndex (start = 0, stop = 312, step = 1)

Я получаю следующую ошибку:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-228-d0d0190e2940> in <module>()
----> 1 Sales_new_data_concastinate_SR_coundaries_joines=gpd.sjoin(Sales_new_data_concastinated,SR_locations, op='within',how='left')

~/anaconda3/lib/python3.7/site-packages/geopandas/tools/sjoin.py in sjoin(left_df, right_df, how, op, lsuffix, rsuffix)
     51             or any(right_df.columns.isin([index_left, index_right]))):
     52         raise ValueError("'{0}' and '{1}' cannot be names in the frames being"
---> 53                          " joined".format(index_left, index_right))
     54 
     55     # the rtree spatial index only allows limited (numeric) index types, but an

ValueError: 'index_left' and 'index_right' cannot be names in the frames being joined

источник https://github.com/geopandas/geopandas/blob/master/geopandas/tools/sjoin.py

говорит:

пространственный индекс rtree допускает только ограниченный (числовой) тип индекса, но индекс # в геопандах может быть произвольным dtype.поэтому сбросьте оба индекса сейчас # и сохраните ссылки на исходные индексы, которые будут добавлены позже.-

Что мне делать на самом деле?

1 Ответ

0 голосов
/ 09 января 2019

Сообщение об ошибке совершенно ясно: 'index_left' и 'index_right' не могут быть именами столбцов в объединяемых элементах данных.

Это может раздражать для вашего конкретного случая, но именно так метод пространственного соединенияВ настоящее время реализован в GeoPandas.

Решение: если у вас есть столбец в левом или правом кадре данных с этими именами, вы можете переименовать этот столбец, используя метод rename: например, df = df.rename(columns={'left_index': 'other_name'}

...