从Pandas高效创建词典的Pythonic方法

从Pandas高效创建词典的Pythonic方法,python,pandas,dictionary,ranking,recommendation-engine,Python,Pandas,Dictionary,Ranking,Recommendation Engine,我有一个Pandas数据框,其中包含列id,date\u created,rank\u 1,rank\u 2,rank\u 3。下面显示了数据帧的两行 身份证件 创建日期 排名1 秩2 排名第三 2223 3/3/21 3:26 1112 2/25/21 1:35 www.webull.com 一种方法是apply并使用enumerate获得枚举: df['rank_dict'] = (df.filter(like='rank_') .apply(lam

我有一个Pandas数据框,其中包含列
id
date\u created
rank\u 1
rank\u 2
rank\u 3
。下面显示了数据帧的两行

身份证件 创建日期 排名1 秩2 排名第三 2223 3/3/21 3:26 1112 2/25/21 1:35 www.webull.com
一种方法是
apply
并使用
enumerate
获得枚举:

df['rank_dict'] = (df.filter(like='rank_')
                     .apply(lambda x: {v:3-k for k,v in enumerate(x)}, axis=1)
                  )
输出:

     id   date_created             rank_1           rank_2          rank_3                                          rank_dict
0  2223   3/3/21 3:26     www.google.com    www.yahoo.com     www.ford.com  {'www.google.com': 3, 'www.yahoo.com': 2, 'w...'
1  1112  2/25/21 1:35   www.autoblog.com   www.motor1.com   www.webull.com  {'www.autoblog.com': 3, 'www.motor1.com': 2,...'