使用pandas按照商品和下单人统计下单数据

目录

一:需求描述

二:代码实现

三:注意事项


一:需求描述

最近运营那边给到一个excel表格,是一个小程序用户的下单数据,要以商品为维度,统计用户下单情况,主要是下单的商品总金额,单数和总单数。

给到的表格数据如下:

考虑用pandas实现,pandas提供了大量的数据处理函数,可以进行各种复杂的数据处理,包括数据清洗、数据转换、数据聚合等。使用pandas先对商品进行去重,然后循环商品,找出所有下单的人,再对下单人进行去重,按照商品-下单人作为关联条件进行统计金额,单数

最终实现的表格数据如下:

这里出现一个问题,由于给的表格存在金额数据为空的数据,在pandas中,可以使用fillna()方法对DataFrame中的空值进行处理。fillna()方法可以接受一个参数,用于指定如何填充空值。这样我金把额填充为0,这样出现的情况就是只要存在下单人就算一单,不管金额。还有其中情况是把金额为空的用户去除,在pandas中,可以使用dropna(inplace=True)删除含有空值的行,这样只会统计有下单金额的用户数据。

二:代码实现

首先要需要确保已经安装了pandas库。如果尚未安装,可以使用以下命令进行安装:

pip install pandas

代码编写:

import pandas as pd


dir = 'D://python/'
df=pd.read_excel(dir+'test.csv')#这个会直接默认读取到这个Excel的第一个表单

dic,label = [],('下单人','商品','金额','单数','总数')
#删除空值
df.dropna(inplace=True)
#把金额为空的填充0
#df.金额.fillna(0, inplace = True)
#print(df)

for 商品 in df.商品.unique():
    下单人 = df[df.商品 == 商品].下单人
    总数= 下单人.shape[0]
    print(总数)
    for 下单人 in 下单人.unique():
        关联条件 = df[(df.商品 == 商品) & (df.下单人==下单人)].fillna('空值')
        单数,金额 = 关联条件.shape[0],关联条件.金额.sum()
        dic.append('~'.join(map(str,(eval(_) for _ in label))).split("~"))
print(dic)
#可以按照商品排序
data = pd.DataFrame(dic, columns=label).sort_values(by='商品')
data.to_excel(dir+'output1.xlsx', sheet_name='Sheet1',index=False)
#可以按照金额排序
data = pd.DataFrame(dic, columns=label).sort_values(by='金额')
data.to_excel(dir+'output1.xlsx', sheet_name='Sheet1',index=False)

三:注意事项

1:删除含有空值的行

df.dropna(inplace=True)

2:空值填充

df.fillna(0, inplace = True) 

3: 某个列空值填充

df.金额.fillna(0, inplace = True)

相关推荐

  1. 数据分析-Pandas如何统计数据概况

    2024-01-13 18:56:03       33 阅读
  2. python递归统计文件夹pdf文件的数量

    2024-01-13 18:56:03       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 18:56:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 18:56:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 18:56:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 18:56:03       20 阅读

热门阅读

  1. awk获取filebeat注册表offset的值

    2024-01-13 18:56:03       35 阅读
  2. P1468 [USACO2.2] 派对灯 Party Lamps

    2024-01-13 18:56:03       35 阅读
  3. Django全文搜索

    2024-01-13 18:56:03       41 阅读
  4. uni-app中实现弹幕的滚动效果

    2024-01-13 18:56:03       41 阅读
  5. 复试 || 就业day13(2024.01.09)算法篇

    2024-01-13 18:56:03       34 阅读
  6. Github Copilot: 一个强大的代码助手

    2024-01-13 18:56:03       46 阅读