Python 3.7 Невозможно объединить 2 кадра данных

Я пытаюсь объединить два фрейма данных вместе. df1 основан на слиянии других файлов (GTFS -маршруты, поездки, время остановки), а df2 - это файл времени остановки.

Когда я пытаюсь выполнить слияние, я получаю сообщение ValueError:

ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat

Я хочу объединить df, и я подтвердил, что два ключа, которые я пытаюсь объединить, являются строковыми объектами.

Я использую следующее, чтобы попытаться объединить два df

df3 = df1.join(df2, how='inner', on='stop_id')

Я попытался записать и прочитать df в файл и обратно, как это было предложено этот вопрос, а также преобразовать оба столбца в строковый объект, используя df.stop_id = df.stop_id.astype('str')

Я прочитал в файлах явное указание, что все столбцы являются строками

df2= pd.read_csv('stops.txt', dtype = {'stop_id': 'str',
                                     'stop_code': 'str',
                                     'stop_name': 'str',
                                     'stop_lat': 'str',
                                     'stop_lon': 'str',
                                     'location_type': 'str',
                                     'parent_station': 'str',
                                     'wheelchair_boarding': 'str',
                                     'platform_code': 'str'})

и проверьте типы данных

df1.stop_id.dtype
df2.stop_id.dtype

оба производят

dtype('O')

Но слияние по-прежнему не выполняется с указанной выше ошибкой. Как я могу решить эту проблему?

Пожалуйста, посмотрите и правильный ответ на этот вопрос. Я надеюсь, это поможет. stackoverflow.com/questions/52902909/…

Madhur Yadav 24.07.2019 08:25

любезно предоставьте образцы данных с желаемым результатом

tawab_shakeel 24.07.2019 09:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
481
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

попробуйте pd.merge объединить оба кадра данных

Сначала конвертируйте stop_id в str в обоих фреймах данных

df1['stop_id'] = df1['stop_id'].astpye(str)
df2['stop_id'] = df2['stop_id'].astpye(str)

df3 = pd.merge(df1,df2,how='inner',on=['stop_id'])

Другие вопросы по теме