Как эффективно l oop через два кадра данных для сравнения столбцов и заполнения данных - PullRequest
0 голосов
/ 04 марта 2020

У меня есть следующий фрагмент кода для перебора двух фреймов данных.

for i, row in df1.iterrows():
    for j, innerrow in df2.iterrows():
        if row["df1_id"] == innerrow["df2_id"]:
            df1.at[i,"count_col_df1"] = innerrow["count_col_df2"]

Здесь проводится сравнение столбца идентификатора для заполнения данных одного столбца в df1 из df2. Поскольку в каждом фрейме данных содержится более 10 000 записей, требуется часов до завершения. Любые предложения по эффективным способам компиляции кода будут приветствоваться. Заранее спасибо

1 Ответ

0 голосов
/ 04 марта 2020

Если я правильно вас понял, это должно вам помочь. eq() возвращает True или False, проверяя значения, равные ли.

df2.loc[df1['df1_id'].eq(df2['df2_id']), 'count_col_df2'] = df1['count_col_df1']
...