3.数据排序
创建数据
import numpy as np import pandas as pd df = pd.DataFrame(data = np.random.randint(0, 30, size = (30, 3)), index = list('qwertyuioijhgfcasdcvbnerfghjcf'), columns = ['Python', 'Keras', 'Pytorch']) df
是一个看起来乱糟糟的数据,我们排序介绍三种方法
3.1 根据索引行列名进行排序
# 按行名排序,升序 display(df.sort_index(axis = 0, ascending = True)) # 按列名排序,降序 display(df.sort_index(axis = 1, ascending = False))
当然,按照索引行列名进行排序是不常用的,我们一般都是对数据进行排序
3.2 属性值排序
# 按Python属性值排序 display(df.sort_values(by = ['Python'])) # 先按Python,再按Keras排序 display(df.sort_values(by = ['Python', 'Keras']))
3.3 返回属性n大或者n小的值
# 根据属性Keras排序,返回最大3个数据 display(df.nlargest(3, columns = 'Keras')) # 根据属性Python排序,返回最小5个数据 display(df.nsmallest(5, columns = 'Python'))
4.分箱操作
🚩分箱操作就是将连续数据转换为分类对应物的过程。比如将连续的身高数据划分为:矮中高。
分箱操作分为等距分箱和等频分箱。
分箱操作也叫面元划分或者离散化。
我们先来创建数据:
import numpy as np import pandas as pd df = pd.DataFrame(data = np.random.randint(0, 150, size = (100, 3)), columns = ['Python', 'Tensorflow', 'Keras']) df
4.1 等宽分箱
🚩等宽分箱在实际操作中意义不大,因为我们一般都会给一个特定的分类标准,比如高于 60 是及格,等分在生活中应用并不多
# bins = 3 表示把 Python 成绩划分成三份 pd.cut(df.Python, bins = 3)
4.2 指定宽度分箱
🚩下述代码就实现了自行定义宽度进行分箱操作,在下述带啊中,不及格是[ 0 , 60 ) ,中等是 [60,90),良好是[90,120),优秀是[120,150)均为左闭右开,这个是由 right = False
设定的
pd.cut(df.Keras, #分箱数据 bins = [0, 60, 90, 120, 150], # 分箱断点 right = False, # 左闭右开 labels=['不及格', '中等', '良好', '优秀'])# 分箱后分类
4.3 等频分箱
🚩等频分箱是按照大家的普遍情况进行等分的操作
pd.qcut(df.Python,q = 4, # 4等分 labels=['差', '中', '良', '优']) # 分箱后分类