如何在python中遍历两个数据帧

时间:2018-06-24 18:03:51

标签: python python-3.x pandas dataframe

我有两个数据帧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 :(得分:1)

我认为首先需要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'})