ermutuxia

2021-03-02   阅读量: 810

Python

python中如何分组计算非重复值的个数?如何分组去重计数?

扫码加入数据分析学习群

学生:一会儿您都在不
在的话我发给你看下
有个指标一直不对
但是我有没发现问题在哪里

老师:好,马上到单位

学生:别激动,哈哈哈

老师:到了,你说下问题呀

学生:
好的
刚才在洗澡

老师:不上班吗?大早上起来洗澡

学生:

3点下班回来睡会儿 起来准备去了
给你发完数据和代码就走
我现在对用户按月进行非重复计数 但是出来的却是数据的记录数

老师:好,你发我看看

学生:

代码如下:

# 1、用户总体消费趋势分析
# 每月产生的总订单数 每月产生的订单金额 每月消费的总人数 每月平均没人产生订单数
data_pivot = data_dict.pivot_table(index="月份",
                      values=["用户ID","商品销量(子订单销售数量)","订单总价","子订单实际支付金额"],
                      aggfunc={
                          "用户ID":"count",         # 对用户计数
                          "商品销量(子订单销售数量)":"sum",             # 对销量求和
                          "订单总价":"sum",           # 对消费金额求和
                          "子订单实际支付金额":"sum"
                      })
print(data_pivot)

前面就是一些处理 然后最后这段主要是。

但是我感觉我写的没问题
数据要的话我可以发几天的数据给您
用来测试一下
需要吗老师?

老师:

好,我希望数据少点,因为这样我工作量就会比较小,因为我要发到pgc上
你给我的数据能说明问题就行
因为是一个比较小的问题

学生:

就给您两天的吧
不是很大

老师:好

学生:

2月订单数据.rar

数据已经经过脱敏

老师:我要等下看呀,要去找个同事谈点事

学生:
好吧
哈哈哈 您先忙

学生:

9.png


就这里这个聚合

不知道为什么 我除了每月用户数不对 其他的都对

用户数这个我看过 我这个结果是记录数

老师:第一步是把2月份数据纵向合并在一起对吧

学生:
你其实就用一天的数据就好了 哈哈哈


不合并也没事 因为我是遍历文件夹导入的数据

您用的是哪天的 我看下那天是多少个用户

老师:我直接用你的代码了

4.png

你的代码里面没有体现去重

学生:
count啊
那我应该怎么写哇

老师:
那个count也只能数数有效值有多少行
但没有去重呀

学生:好像有点道理

老师:

19.png

我们在这里先记录一下原结果

学生:

这是两天的数据了吧

老师:对

28.png

代码进行如上修改

#定义去重计数的函数distinct_count2
def distinct_count2(x):
    print(x)
    y=x.unique()
    #这里的x是一个序列
    return y.shape[0]
data_pivot = data_dict.pivot_table(index="月份",
                      values=["用户ID","商品销量(子订单销售数量)","订单总价","子订单实际支付金额"],
                      aggfunc={
                          "用户ID":distinct_count2,         # 对用户计数
                          "商品销量(子订单销售数量)":"sum",             # 对销量求和
                          "订单总价":"sum",           # 对消费金额求和
                          "子订单实际支付金额":"sum"
                      })
print(data_pivot)


修改代码后的执行结果

36.png

学生:


噢 你写了一个自定义函数 来对用户进行非重复计数
NBNB
我怎么没想到





0.0000 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子