【发布时间】:2019-06-25 10:27:49
【问题描述】:
我有 2 个包含展示数据和点击数据的字典列表。例如:
[{'offerId': '1650', 'position': '15', 'clicksCount': 21}, {'offerId': '2323','位置':'12','clicksCount':14},{'offerId':'2323', '位置':'14','clicksCount':8},{'offerId':'1621','位置': '10', 'clicksCount': 7}]...
[{'offerId': '3207', '位置': '9', 'impressionsCount': 866}, {'offerId':'1650','位置':'6','impressionsCount':896}, {'offerId':'3207','位置':'1','impressionsCount':909}, {'offerId': '2323', '位置': '12'}]...
我需要将其合并在一起,并按 offerId 和 position 来获得每个 offer 位置的结果(点击次数和展示次数)。
我试过这段代码,但它返回了错误的结果:
d = defaultdict(dict)
for l in (clicks_aggregated_data, impressions_aggregated_data):
for elem in l:
d[elem['offerId']].update(elem)
d[elem['position']].update(elem)
combined_data = list(d.values())
for model, group in groupby(combined_data, key=lambda x:x['offerId']):
print(list(group))
有人可以帮我实现表格中的结果(屏幕截图)吗?
【问题讨论】:
-
如果数据不完整或为图片,我们无法重新创建。你能更新吗?
-
为什么要重复offerid?你如何结合点击和表达,该表没有多大帮助,如果你能提供更清晰的输出和解释而不是我们做猜测会更好
-
如果您使用的是 pandas,您可以转换为数据框,然后合并
pd.DataFrame(d1).merge(pd.DataFrame(d2), on=['offerId', 'position']) -
听起来您只是想将其放入数据框中然后订购?技术上只是附加数据
-
offerId 重复,因为优惠卡可以显示在不同的位置我需要了解每个位置上每个优惠的展示次数以及点击次数
标签: python python-3.x list dictionary aggregate