PYTHON数据分析之分组计算

xiaoxiao2021-02-27  210

分组计算

#导入pandas包 import pandas as pd #打开csv文件 df = pd.read_csv("E:\\Pokemon.csv") #一类分组 g1 = df.groupby(["Type 1"]) #分组后,显示每组的第一条数据 g1.first() #分组后,每个组有多少条数据 g1.size() #分组后对每组进行描述性统计 g1.describe() #分组后,每组对应哪些样本 g1.groups() #分组后,选取某个分组的所以数据 g1.get_group("ROCK")

#循环输出所有组名及对应大小 for name,group in g1: print(name) print(group.shape) print("------------")

#两列分组 g2 = df.groupby(["Type 1","Type 2"]) #查看两列分组大小 g2.size() #查看某列数据 g2["HP"] #查看某列数据平均值 g2["HP"].mean() #或者 g2.mean()["HP"] groupby的三个主要函数 aggregate函数 #aggregate函数#求所有列的总和g1.agg(np.sum) #每一列求不同的值 g1.agg({"HP":np.sum,"Attack":np.mean,"Defense":np.std}) #重新命名每列名称使更直观 g1.agg({"HP":np.sum,"Attack":np.mean,"Defense":np.std}).rename(columns = {"HP":"HP_sum","Attack":"Attack_mean","Defense":"Defense_std"}) #导入numpy包 import numpy as np #求所有列值的总和 g1.agg(np.sum) #每一列求不同的值 g1.agg({"HP":np.sum,"Attack":np.mean,"Defense":np.std}) #重新命名每列名称使更直观 g1.agg({"HP":np.sum,"Attack":np.mean,"Defense":np.std}).rename(columns = {"HP":"HP_sum","Attack":"Attack_mean","Defense":"Defense_std"}) transform函数 #transform函数 转换函数 返回新的数据集 不会对原有数据集改变 #数据集标准化 f = lambda x : (x-x.mean()) / x.std() #数据集转换 g1.transform(f) filter函数 #filter函数 选择筛选函数 #选择多于80条记录的组 df1 = g1.filter(lambda x : len(x)>=80) #选择HP平均值大于等于60的组 df2 = g1.filter(lambda x : np.mean(x["HP"])>=60 #新的数据集进行分组 g3 = df1.groupby(["Type 1"]) #查看新的数据集分组的大小 g3.size() #检查HP数据是否都是大于等于60的组 g3["HP"].mean()

转载请注明原文地址: https://www.6miu.com/read-12221.html

最新回复(0)