agg函数练习题(python)

agg函数

注意:所需数据库私聊我免费拿数据(也可以用自己的数据,我的只是在教方法)
要导入pandas和pip install xlrd==1.2.0 指定版本号
更改python默认镜像源:
在pycharm下方Terminal中执行下面命令:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
agg.py

import pandas as pd
import numpy as np
pd.set_option("max_columns",None) #显示所有列
# pd.set_option("max_rows",None) #显示所有行
df=pd.read_excel("朝阳医院2018年销售数据1.xlsx")
print(df)
#求不同药品的销售总量,最高销售数量
#对某一列进行多种聚合操作
print(df.groupby("商品名称")["销售数量"].agg([np.sum, np.max]))
print(df.groupby("商品名称")["销售数量"].agg(["sum", "max"]))
#求不同社保卡号的拿药次数和消费总金额
print(df.groupby("社保卡号").agg({"社保卡号": "count", "实收金额": "sum"}))
#求1季度不同药品的总销售金额和总销售数量
df["购药时间"]=pd.to_datetime(df["购药时间"])
#日期类型的数据如果作为索引,不需要加dt,如果日期类型是一列,需要加dt访问日期对象
df[df["购药时间"].dt.quarter==1].groupby("商品名称").agg({"实收金额":"sum","销售数量":"sum"})
#求每个月份,不同商品的销售总数量和平均销售额
m=df["购药时间"].dt.month
print(df.groupby([m,"商品名称"]).agg({"实收金额": "mean", "销售数量": "sum"}))
#统计每月,每种药品的最低和最高销售数量,平均和实收总金额
print(df.groupby([m, "商品名称"]).agg({"实收金额": ["mean", "sum"], "销售数量": ["max", "min"]}))
#统计每月  销售金额的跨度(每月实收金额最大值-每月最小值)
#1-7月  分为7个小组,a是每个小组的实收金额的数据
print(df.groupby(m)["实收金额"].agg(lambda a: a.max() - a.min()))

agg函数练习题(python)_第1张图片

agg1.py

import pandas as pd
import numpy as np
pd.set_option("max_columns",None) #显示所有列
# pd.set_option("max_rows",None) #显示所有行
df=pd.read_csv("beijing_tianqi_2018.csv")
print(df)
df["bWendu"]=df["bWendu"].str[:-1].astype(np.int_)
df["yWendu"]=df["yWendu"].str[:-1].astype(np.int_)
#统计每月的平均温度,以及最高aqi指数
df["ymd"]=pd.to_datetime(df["ymd"])
n=df["ymd"].dt.month
print(df.groupby(n).agg({"bWendu": "mean", "yWendu": "mean","aqi":"max"}))
#统计1季度中每周的最高和最低aqi指数
m=df["ymd"].dt.week
print(df[df["ymd"].dt.quarter == 1].groupby(m).agg({"aqi": ["max","min"]}))
#统计每季度,不同aqiInfo的bWendu中最高温和最低温
c=df["ymd"].dt.quarter
print(df.groupby([c,"aqiInfo"]).agg({"bWendu": ["max","min"]}))

你可能感兴趣的:(项目,笔记,python)