本文用到的表格内容如下:
先来看一下原始情形:
import pandas as pd
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df)
result:
分类 货品 销售量 价钱
0 水果 苹果 34 12
1 家电 电视机 56 3498
2 家电 冰箱 78 2578
3 书籍 python从入门到放弃 25 78
4 水果 葡萄 789 7
1.唯一值获取
唯一值获取一般有2种方法,第一种是删除重复项,该方法在前面讲述pandas系列之重复值的处理一文中介绍过。第二种方法是通过unique()方法获取
import pandas as pd
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(df['分类'].unique())
result:
['水果' '家电' '书籍']
2.区间切分
区间切分就是将一系列数值分成若干份,比如现在有10个人,按年龄将其分为三组,该切分过程就称为区间切分
2.1cut方法
该方法有一个参数bins用来指明切分区间
import pandas as pd
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(pd.cut(df["价钱"], bins=[7, 12, 78, 2578]))
result:
0 (7.0, 12.0]
1 NaN
2 (78.0, 2578.0]
3 (12.0, 78.0]
4 NaN
Name: 价钱, dtype: category
Categories (3, interval[int64, right]): [(7, 12] < (12, 78] < (78, 2578]]
来看结果。根据bins提供的四个值,很明显将价钱这一列的数值划分成了三个区间,分别为(7, 12] , (12, 78], (78, 2578],且都是左开右闭区间
2.2 qcut方法
与cut方法类似,该方法不需要事先指明切分区间,只需要指明切分个数。然后就会根据切分数据的情况,将数据切分成事先指定的份数。依据的原则就是每个组里面的数据个数尽可能相等。
df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
print(pd.qcut(df['价钱'], 3))
result:
0 (6.999, 34.0]
1 (1744.667, 3498.0]
2 (1744.667, 3498.0]
3 (34.0, 1744.667]
4 (6.999, 34.0]
Name: 价钱, dtype: category
Categories (3, interval[float64, right]): [(6.999, 34.0] < (34.0, 1744.667] < (1744.667, 3498.0]]
注:在数据分布比较均匀的情况下,这2个方法得到的切分区间基本一致。担当数据分布不均匀时,即方差较大时,二者得到的切分区间偏差就会非常大