python - 如何有效地比较两个熊猫数据框之间的值,一个带有列表,一个带有单个值?
问题描述
我有两个数据框,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
感谢您的时间和帮助!
解决方案
如果使用pandas>=0.25
,您可以使用explode
并比较这些值:
df2['uuid'].isin(df1.explode('uuids')['uuids'].values)
Out[1]:
0 True
1 True
2 True