定制一个高端网站,网站建设的有什么需求,大连金豆网站建设,推广网站优化怎么做今天的学习用有好几处与书上的内容有出入#xff0c;不只是因为pycharm中函数更新、弃用的问题#xff0c;还是作者有些疏忽。不过影响不大#xff0c;运行报错#xff0c;GPT分析一下#xff0c;原因很简单。这里不进行详细书名#xff0c;在下边的代码上已经进行详细的… 今天的学习用有好几处与书上的内容有出入不只是因为pycharm中函数更新、弃用的问题还是作者有些疏忽。不过影响不大运行报错GPT分析一下原因很简单。这里不进行详细书名在下边的代码上已经进行详细的备注这里不浪费时间了。
主要内容
1、数据的统计运算包括求和、平均值、最值、分别要用到sum()函数、mean()函数、max()函数、min()函数。
2、获取数值分布情况在pandas模块中的describe()函数可以按列获取数据表中所有数值数据的分布情况 包括数据的个数、均值、最值、方差、分位数等。
3、计算相关系数使用corr()函数计算数据表data中各列之间的相关系数如果仅计算数值数据则在corr()函数添加参数numeric_onlyTrue。
4、分组汇总数据pandas模块中的groupby()函数可以对数据进行分组依据“产品”列对数据进行分组在对分组后的数据分别进行求和运算。bdata.groupby(产品).sum()
5、创建数据透视表apd.pivot_table(data,values利润元,index产品,aggfuncsum) 这句代码中参数values用于指定要计算的列 参数index用于指定一个列作为数据透视表的行标签 参数aggfunc表示values的计算类型sum表示求和。当然也可以指定多列bpd.pivot_table(data,values[利润元,成本元],index产品,aggfuncsum)
##############################
##作者白雪公主的后妈
##时间2024年1月1日
##主题数据的高级处理——pandas模块进阶——数据的统计运算
##主要内容常见的统计运算包括求和、平均值、最值、分别要用到sum()函数、mean()函数、max()函数、min()函数。
##############################
#1、数据的统计运算
#1.1求和 #pandas模块中的sum()函数可以对数据的每一列数据分别进行求和。
import pandas as pd
datapd.read_excel(E:\\python\\Python_Code\\Excel\\产品统计表.xlsx,sheet_name0)
adata.sum()
print(a)运行结果
编号 a001a002a003a004a005a006a007
产品 背包钱包背包手提包钱包单肩包单肩包
成本价元/个 364
销售价元/个 899
数量个 358
成本元 20802
收入元 48157
利润元 27319
dtype: object
#从运行结果可以看出对非数值数据运算结果是将它们依次来连接得到一个字符串
对于数值数据运算结果才是数据之和。#############也可以对某一列进行求和
adata[利润元].sum()
print(a)运行结果
27319#1.2、求平均值 在pandas模块中mean()函数可以对所有数值数据列分别计算平均值。
datapd.read_excel(E:\\python\\Python_Code\\Excel\\产品统计表.xlsx,sheet_name0)
cdata.mean(numeric_onlyTrue) #在python爬虫、数据分析与可视化中132页小编直接cdata.mean() 即可我认为有两种可能一种小编可能忘写了另外一种使用的pycharm版本的函数不同。
print(c)运行结果
成本价元/个 52.000000
销售价元/个 128.428571
数量个 51.142857
成本元 2971.714286
收入元 6879.571429
利润元 3902.714286
dtype: float64################
ddata[利润元].mean() #对某一列计算其平均值
print(d)运行结果
3902.714285714286#1.3求最值 max()和min()函数
edata.max()
print(e)运行结果
编号 a007
产品 钱包
成本价元/个 90
销售价元/个 187
数量个 78
成本元 7020
收入元 14586
利润元 7566
dtype: object########对数据表中某一列进行求解最大值
fdata[利润元].max()
print(f)运行结果
7566#2、获取数值分布情况在pandas模块中的describe()函数可以按列获取数据表中所有数值数据的分布情况
包括数据的个数、均值、最值、方差、分位数等datapd.read_excel(E:\\python\\Python_Code\\Excel\\产品统计表.xlsx,sheet_name0)
adata.describe()
print(a)运行结果成本价元/个 销售价元/个 数量个 成本元 收入元 利润元
count 7.000000 7.000000 7.000000 7.000000 7.000000 7.000000
mean 52.000000 128.428571 51.142857 2971.714286 6879.571429 3902.714286
std 31.112698 50.483849 20.053500 2391.447659 4352.763331 2005.138957
min 16.000000 65.000000 23.000000 368.000000 1495.000000 1127.000000
25% 26.000000 94.500000 38.000000 948.000000 3861.000000 2895.000000
50% 58.000000 124.000000 58.000000 3364.000000 7192.000000 3828.000000
75% 74.000000 167.000000 61.500000 4077.000000 8581.000000 4504.000000
max 90.000000 187.000000 78.000000 7020.000000 14586.000000 7566.000000###########也可以单独看成一列数据
bdata[利润元].describe()
print(b)运行结果
count 7.000000
mean 3902.714286
std 2005.138957
min 1127.000000
25% 2895.000000
50% 3828.000000
75% 4504.000000
max 7566.000000
Name: 利润元, dtype: float64#3、计算相关系数相关系数通常用来衡量两个或者多个元素间的相关程度使用pandas模块中的corr()函数可以计算相关系数。import pandas as pd
datapd.read_excel(E:\\python\\Python_Code\\Excel\\相关性分析.xlsx,sheet_name0)
print(data)运行结果代理商编号 年销售额万元 年广告费投入额万元 成本费用万元 管理费用万元
0 A-001 20.5 5.6 2.00 0.80
1 A-003 24.5 16.7 2.54 0.94
2 B-002 31.8 20.4 2.96 0.88
3 B-006 34.9 22.6 3.02 0.79
4 B-008 39.4 25.7 3.14 0.84
5 C-003 44.5 28.8 4.00 0.80
6 C-004 49.6 32.1 6.86 0.85
7 C-007 54.8 35.9 5.60 0.91
8 D-006 58.5 38.7 6.45 0.90##########使用corr()函数计算数据表data中各列之间的相关系数。
adata.corr(numeric_onlyTrue) #numeric_onlyTrue表示只处理数值型列表
print(a)运行结果年销售额万元 年广告费投入额万元 成本费用万元 管理费用万元
年销售额万元 1.000000 0.976664 0.913472 0.218317
年广告费投入额万元 0.976664 1.000000 0.875142 0.306296
成本费用万元 0.913472 0.875142 1.000000 0.283494
管理费用万元 0.218317 0.306296 0.283494 1.000000##################如果只想查看某一列与其他列的相关系数可以用列表签来指定列。
bdata.corr(numeric_onlyTrue)[年销售额万元]
print(b)运行结果
年销售额万元 1.000000
年广告费投入额万元 0.976664
成本费用万元 0.913472
管理费用万元 0.218317
Name: 年销售额万元, dtype: float64#4、分组汇总数据
#pandas模块中的groupby()函数可以对数据进行分组
import numpy as np
datapd.read_excel(E:\\python\\Python_Code\\Excel\\产品统计表.xlsx,sheet_name0)
adata.groupby(产品)
print(a)运行结果
pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001751C0BC470
不能直观的展现需要配合1节介绍的函数对其进行求和、求平均值、求最值等特定的汇总计算#########举例依据“产品”列对数据进行分组在对分组后的数据分别进行求和运算
# 删除编号列
data data.drop(columns[编号]) #书中不用加这行直接运行后出现一下运行结果但是我运行以后存在编号列需要对“编号”列继续删除
bdata.groupby(产品).sum()
print(b)运行结果成本价元/个 销售价元/个 数量个 成本元 收入元 利润元
产品
单肩包 116 248 121 7018 15004 7986
手提包 36 147 26 936 3822 2886
背包 32 130 83 1328 5395 4031
钱包 180 374 128 11520 23936 12416cdata.groupby(产品)[利润元].sum()
print(c)运行结果
产品
单肩包 7986
手提包 2886
背包 4031
钱包 12416
Name: 利润元, dtype: int64#######当然也可以选择多列进行分组后汇总计算
ddata.groupby(产品)[[数量个,利润元]].sum() #这里与书中的也有所不同ddata.groupby(产品)[数量个,利润元].sum()
print(d)运行结果数量个 利润元
产品
单肩包 121 7986
手提包 26 2886
背包 83 4031
钱包 128 12416#5、创建数据透视表
import numpy as np
datapd.read_excel(E:\\python\\Python_Code\\Excel\\产品统计表.xlsx,sheet_name0)
apd.pivot_table(data,values利润元,index产品,aggfuncsum)
print(a)apd.pivot_table(data,values利润元,index产品,aggfuncsum)
这句代码中参数values用于指定要计算的列
参数index用于指定一个列作为数据透视表的行标签
参数aggfunc表示values的计算类型sum表示求和。
运行结果利润元
产品
单肩包 7986
手提包 2886
背包 4031
钱包 12416###########可以计算多列
bpd.pivot_table(data,values[利润元,成本元],index产品,aggfuncsum)
print(b)
利润元 成本元
产品
单肩包 7986 7018
手提包 2886 936
背包 4031 1328
钱包 12416 11520