Я пытаюсь собрать полезный набор данных о ледниках. Наши исходные данные взяты из набора данных ArcGIS, а значения широты / долготы были сохранены в отдельном файле, теперь отделенном от CSV со всеми нашими данными. Я пытаюсь объединить файлы широты и долготы с нашим набором данных. Вот предварительный просмотр того, как выглядят файлы.
Это мой основной файл набора данных, glims (столбцы опущены для ясности)
| ANLYS_ID | GLAC_ID | AREA |
|----------|----------------|-------|
| 101215 | G286929E46788S | 2.401 |
| 101146 | G286929E46788S | 1.318 |
| 101162 | G286929E46788S | 0.061 |
Это файл широты и долготы, координаты
| lat | long | glacier_id |
|-------|---------|----------------|
| 1.187 | -70.166 | G001187E70166S |
| 2.050 | -70.629 | G002050E70629S |
| 3.299 | -54.407 | G002939E70509S |
Проблема в том, что фрейм данных координаты имеет одну строку для каждого идентификатора ледника с широтой и долготой, тогда как мой фрейм данных glims имеет несколько строк для каждого идентификатора ледника с различными данными для каждая запись.
Мне нужно, чтобы к каждой отдельной записи в моем основном файле данных добавлялось значение широты и долготы на основе совпадения glacier_id между двумя фреймами данных.
Вот что я пробовал до сих пор.
glims = pd.read_csv('glims_clean.csv')
coordinates = pd.read_csv('LatLong_GLIMS.csv')
df['que'] = np.where((coordinates['glacier_id'] ==
glims['GLAC_ID']))
возвращается ошибка: объект 'int' не может быть подписан
и:
glims.merge(coordinates, how='right', on=('glacier_id', 'GLAC_ID'))
возвращается ошибка: объект int не имеет атрибута 'merge'
Я понятия не имею, как справиться с этим большим слиянием. Я также боюсь делать ошибки, потому что их почти невозможно поймать, так как данные не содержат других определяющих факторов.
Любое руководство было бы замечательно, спасибо.