PYTHON数据分析之分组计算

分组计算

#导入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()

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值