python笔记20:数据处理之数据分组

# -*- coding: utf-8 -*-
#概念:数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间进行研究,以揭示
#其内在的联系和规律性

#cut函数:cut(series,bins,right=True,labels=NULL)
#series:需要分组的序列数据
#bins:划分数组(如何定义划分数组是重点)
#right:分组的时候,右边是否闭合,默认闭合
#labels:分组的自定义标签,可以不自定义

#返回值:分组结果的序列,列名即上述的自定义标签

import pandas

data = pandas.read_csv("D:/workspaces/python/pythonStudy/20.csv",sep="|")

#分析消费金额的分布情况:
#定义分组区间:
bins = [
        min(data.cost)-1,20,40,60,80,100,max(data.cost)+1
]

#问:分组区间中,最小值和最大值为什么要分别减一和加一?
#答:因为分组的时候有可能会碰上边界值(即需要分组的数据和我们的最小值或最大值相等),这可能会导致找不到范围

#开始分组(左开右闭):
data["cut"] = pandas.cut(
data.cost,
bins
)
#查看分组结果,可以看到如果我们不自定义标签,那么python给我们生成的默认标签是数据的范围表达式

#左闭右开:
data["cut"] = pandas.cut(
data.cost,
bins,
right=False
)

#自定义分组标签:
labels = [
          '20以下','20到40','40到60','60到80','80到100','100以上'
          ]
#开始分组
data["cut"] = pandas.cut(
    data.cost,
    bins,
    labels = labels
)

猜你喜欢

转载自blog.csdn.net/aiyo92/article/details/86535498