首页 > 解决方案 > 将每一行与 apply() 进行比较以加快运行速度

问题描述

我想加快我的程序来比较每一行。我正在考虑使用 pandas apply() 方法,但我无法确定它是如何使用的。

这是我要比较的数据: 数据

我想比较每一行变成这样

目前我正在使用下面的代码:

df = pd.read_excel(r'example.xlsx',sheet_name='Sheet3')
df['Title_new'] = df[df.columns[2:]].apply(lambda x: ','.join(x.dropna().astype(str)),axis=1)
r_list = []
for i in range(len(df['Title_new'])):
    list1 = df['Title_new'][i]
    index_a = df['index'][i]
    source_a = df['Source'][i]
    for j in range(len(df['Title_new'])):
        list2 = df['Title_new'][j]
        index_b = df['index'][j]
        source_b = df['Source'][j]
        if index_a == index_b :
            continue
        r_list.append([index_a,source_a,list1,index_b,source_b,list2])
        print([index_a,source_a,list1,index_b,source_b,list2])

r_df = pd.DataFrame(r_list)
r_df.columns= ['index_a','source_a','title_a','index_b','source_b','title_b']
r_df

标签: pythonloopsapply

解决方案


推荐阅读