Ошибка при .merge() двух DataFrames. Появляется много "лишних" строк

Рейтинг: 0Ответов: 1Опубликовано: 21.03.2023

#два датафрейма df1 и df2, общий столбец course_id, содержит 16 уникальных значений. #df1 - 300 тыс срок #df2 - 1200 строк

df1 = full_df[['progress_id', 'course_id']]
df2 = course_contents_df[['course_id', 'lesson_token']]
df1 = df1.merge(df2, left_on='course_id', right_on='course_id')

при слиянии получается 30 млн строк. откуда? в итоговом фрейме также 16 уникальных значений course_id

df1.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 350677 entries, 0 to 350676
Data columns (total 2 columns):
 #   Column       Non-Null Count   Dtype 
---  ------       --------------   ----- 
 0   progress_id  350677 non-null  object
 1   course_id    350677 non-null  object
dtypes: object(2)
memory usage: 8.0+ MB
df2.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1201 entries, 0 to 1200
Data columns (total 2 columns):
 #   Column        Non-Null Count  Dtype 
---  ------        --------------  ----- 
 0   course_id     1201 non-null   object
 1   lesson_token  1201 non-null   object
dtypes: object(2)
memory usage: 18.9+ KB

Дубликатов нет ни в 1, ни во 2 фрейме

Ответы

▲ 0

Я все понял спасибо. в второй таблице course_id должен указывать только на один Lesson_token, а он указывает на множество, от сюда и множатся данные. Я смержу по другим данным. спасибо всем!

UPD: Все получилось!