我有两个数据框,我将它们分别称为frame1和frame2。 frame1是较小的框架,并具有一个id列,其中每个单个id都是唯一的。 frame2较大,并且具有完全相同的id列,但是许多id是重复的。但是,frame2中唯一ID的数量与frame1中的行数相同... aka,frame2中的每个id都存在于frame1中。
我想做的是在frame1中添加一个“ counts”列,其中包含与frame2中的每个ID相关联的唯一度量标准类别的数量。
这是框架的外观:
因此,我想在“ frame1”中添加“ unique_metric_counts”列,其ID为1的ID为“ 3”,ID 2为“ 2”,ID 3为“ 1”。
对于如何执行此操作,我有一个很好的主意,问题是我认为它占用了Jupyter笔记本电脑中的大量内存,并且永远不会完成运行,因为这是在很大框架上的for循环。对于循环,我正在创建更大的临时框架。
这是我的代码:
frame1['unique_metric_counts'] = None
for x in frame1['id']:
tempframe = frame2[frame2['id'].isin([x])]
numUnique = tempframe['metric categories'].nunique()
frame1['unique_metric_counts'] = numUnique
我相当确定该代码在理论上应该可以工作,但是我的数据帧绝对庞大,我认为不使用for循环,而仅使用Pandas功能会更好。任何帮助是极大的赞赏。