如何从海量商品每日数据中找到近期销量持续增长的商品?

发布于 2022-09-06 20:16:02 字数 445 浏览 16 评论 0

数据结构如下
date     product_id   uv        sell
2018-3-8   001        68        199
2018-3-8   002        72        288
2018-3-9   001        71        85  
2018-3-9   002        84        199
....

数据里存的是每天不同商品的流量和销售情况,以(日期+产品ID)作为唯一值

核心需求其实是从海量的商品中,寻找符合条件的ID。
其实问题可以简化成为“寻找最近3天内销量有连续增长的商品ID”

请问如何使用pandas筛选出一下的数据:

  1. 最近3天内每天【数据1】增长都大于0小于100的ID。
  2. 最近3天内每天【数据2】都增长大于5%的ID

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

走野 2022-09-13 20:16:02
import pandas as pd
threedays = ['2018/3/9', '2018/3/10', '2018/3/11']
df = pd.read_csv('test.csv')
df = df[df['data_date'].isin(threedays)].groupby(['data_date', 'product_id']).sum().reset_index(drop=False) # 过滤最近三天并求和

def f(df):
    if len(df) == 3:
        # 三天都有数
        r = [df['uv'][df['data_date'] == threedays[i]].values[0] for i in range(3)]
        return (r[2] - r[1] < 100) and r[2] > r[1] and (r[1] - r[0] < 100) and r[1] > r[0] #增长大于0小于100
    else:
        return False

r = df.groupby('product_id').apply(f)
print(list(r[r==True].index))

条件2类比,把f改一下就ok了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文