首页 > 解决方案 > 如何有效地比较两个熊猫数据框之间的值,一个带有列表,一个带有单个值?

问题描述

我有两个数据框,df1 和 df2,如下所示:

#TWO DFs
df1 = {'uuids': [[01, 03], [02], [02,03]} 

df2 = {'uuid':[01, 02, 03]}

这些是原件的实例。我的问题是如何有效(快速)打印df2,如果它发现一个值01存在df1

目前,我正在做以下事情 -

for j in range(len(df1)):
    for i in df1['uuids'][j]:# GOES THROUGH EACH VALUE INSIDE LIST OF COLUMN uuids
        print (df2[df2['uuid'] == i])# PRINTS df2 IF THERE IS A MATCH

感谢您的时间和帮助!

标签: pythonpandasdataframe

解决方案


如果使用pandas>=0.25,您可以使用explode并比较这些值:

df2['uuid'].isin(df1.explode('uuids')['uuids'].values)

Out[1]:
0    True
1    True
2    True

推荐阅读