您好,尝试合并两个数据框并按日期和 upc 汇总访问计数。
- 交易数据(日期、upc、销售) 200k 行 x 3 列
- 访问次数(日期、upc、访问次数)200 万+ 行 x 3 列
我试过这个
df3 = pandas.merge(df1,df2, on = ['upc','date'], how = 'left')
结果:合并执行,但不按日期或 upc 求和
我也试过
df3 = pandas.merge(df1,df2, left_on = ['date'], right_on ['upc'] how = 'left')
那没有用。
df3 = pandas.merge(df1,df2, left_on = ['date','upc'], right_on ['date','upc'] how = 'left')
那没有用。
我也试过
df3 = pandas.merge(df1,df2, on = ['date'], how = 'left')
我一直返回一条错误消息。根据错误消息,我似乎需要将数据框中的日期之一转换为 pandas dtype。
我进行了更改并返回了与第一次尝试相同的结果。合并有效,但没有总结结果。我尝试将两个数据框中的两个日期都转换为astype(str)
,但没有成功。我知道两个日期是否具有相同的日期格式 dtype 或者astype(str)
我返回内存错误消息。合并会失败。
我仅使用 upc 成功合并,但这在我的数据中产生了一个问题,我返回重复的访问号码,因为由于日期列而在事务中重复了 upc。
一天结束时,我需要的是类似于 excel 中的 sumif 函数的东西。
我需要通过汇总每个 upc 每天的总访问量并保持事务数据不变或在 sql 方面保持连接来组合这两个数据集
样本数据
df1
Date upc sales
0 09/01/2016 A01234 1000
1 09/02/2016 A01234 500
2 09/10/2016 A56789 1200
df2
Date upc visits
0 09/01/2016 A01234 10
1 09/02/2016 A01234 25
2 09/05/2016 A56789 26
3 09/10/2016 A56789 32
df3
Date upc sales visits
0 09/01/2016 A01234 1000 10
1 09/02/2016 A01234 500 25
2 09/10/2016 A56789 1200 32
想知道 pandasql 包是否是我需要使用的。任何帮助表示赞赏