Как перебрать два фрейма данных в Python - PullRequest
0 голосов
/ 24 июня 2018

У меня есть два кадра данных df1 (с столбцами C1, C2 и т. Д.) И df2 (с столбцами S1, S2 и т. Д.)
Я хочу перебрать каждый столбец обоих фреймов данных.
В настоящее время я делаю следующее:

df3=pd.Dataframe([])
for index1,row1 in df1.iterrows():
    for index2,row2 in df2.iterrows():
        if row1['C1']==row2['S1']:
            #perform Some Operations on each row like:
            df3 = df3.append(pd.DataFrame({'A': row2['S1'], 'B': row2['S2'],'C':functionCall(row1['c3'], row2['S3'])}, index=[0]), ignore_index=True)  

Это работает нормально, но занимает слишком много времени.
Я хотел знать, есть ли более эффективный способ перебора двух фреймов данных?

1 Ответ

0 голосов
/ 24 июня 2018

Я думаю, сначала нужно merge, затем функция apply и последний фильтр столбцов по подмножеству - [[]]:

df3 = pd.merge(df1, df2, left_on='C1', right_on='S1')
df3['C'] = df3.apply(lambda x: functionCall(x['C3'], x['S3']), axis=1)
df3 = df3[['S1', 'S2', 'C']].rename(columns={'S1': 'A','S2': 'B'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...