python数据透视表对各列统计_pythonpandas数据分析基础⼊
门2——(数据格式。。。
//2019.07.18
pyhton中pandas数据分析学习——第⼆部分
2.1 数据格式转换
1、查看与转换表格某⼀列的数据格式:
(1)查看数据类型:某⼀列的数据格式:df["列属性名称"].dtype
(2)数据类型转换:某⼀列的数据类型转换需要⽤到数据转换函数:
df[列属性名称]=df[列属性名称].astype("新的数据类型")
代码举例如下:
import numpy as np
import pandas as pd
ad_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")
print(df)
print(df["评分"].dtype) #查看类型这⼀列的数据类型
print(df["评分"])
df["评分"]=df["评分"].astype("int") #进⾏数据表格的数据类型转换需要⽤到数据类型转换函数df["列名称"].astype("类型名称”)
print(df["评分"])
print(df["评分"].dtype)
2.2 数据的排序
1、单个表格列数据的排序需要⽤到函数:
df.sort_values(by=列名称,ascending=True(升)/False(降))
print(df.sort_values(by="评分",ascending=False)["评分"])
2、多排序问题:
对于多列排序问题,主要是遇到其中⼀个列数据相同的时候需要看另外⼀个列数据进⾏排序,使⽤的函数及其使⽤规则如下:
df.sort_values(by=[列1,列2...],ascending=[])
其中函数参数by=[,,]前后顺序代表了多列排序优先级顺序,ascending=[,,]中False和True代表了相应每列的排序原则(升降))
2.3 基本统计数据分析
1、对于数值型的数据通常都需要进⾏相应的常见统计数据分析,最常见的描述性统计函数是.describe(),它可以给出数据的多项统计指标;
2、对于表格各个列的数据统计指标主要有以下⼏个函数:
(1)最值:最⼤值和最⼩值df[].max()和df[].min()
(2)中位数:df[].median()
(3)平均值:df[].mean()
(4)⽅差:df[].var()
(5)标准差:df[].std()
(6)求和函数:df[].sum()
(7)相关系数与协⽅差:
相关系数:df[[]].corr()
协⽅差:df[[]].cov()
(8)计数:
1)对于每⼀类数据中出现的唯⼀值统计可以⽤函数df[列属性].unique()来进⾏查询,个数的话直接在前⾯加len就可以了
2)表格中数据的替换:使⽤函数df[列名称1].replace(A,B,inplace=True)#代表的是将表格中列1的数据中的所有数据A替换为数据B
3)统计出现唯⼀值的出现次数使⽤函数df[列].valuecounts()它默认是以降序的排列对每个不同出现的数据进⾏相关的次数统计输出
2.4数据透视操作和函数
1、数据透视是⼀个使⽤⼴泛并且功能强⼤的数据信息挖掘功能,它的函数是pd.pivot_table()
2、数据透视函数的参数与使⽤规则
函数的形式如下:
pd.pivot_table(df,index=[列1,列2...],values=[其余列1,其余列2...],aggfunc=,,fill_value=0(处理⾮数值性质数据),margins=True(总和统计数据),columns=[列1,列2...](只要是指列⽅向的分层,类似于index的⾏分层,⾮必要参数))
具体举例代码如下:
pd.set_option("max_columns",1000)
pd.set_option("max_rows",1000)
#设置pyhton输出数据的⾏和列的最⼤⾏数⽬(⼤于设定值之后才会出现省略号)
print(df)
print(pd.pivot_table(df,index="地区")) #输出以地区为属性的各列数据均值
print(pd.pivot_table(df,index=["地区","类型"])) #输出以地区为第⼀层,类型为第⼆层的其他各列数据均值
print(pd.pivot_table(df,index=["地区","类型"],values=["价格"]))
print(pd.pivot_table(df,index=["地区","类型"],values=["价格"],aggfunc=[np.an]))
print(pd.pivot_table(df,index=["地区"],values=["评分","价格"],columns=["类型"],aggfunc={"评分":np.mean,"价
格":np.sum},fill_value=0))
table=pd.pivot_table(df,index=["地区","类型"],values=["价格"])
#print(table.sort_values(by="评分",ascending=False)) #对于评分进⾏降序排列
print(table.index)
整体的⼊门运⾏代码如下所⽰(可以直接拷贝运⾏,含有详细的代码注释,可以轻松帮助你⼊门理解):
import numpy as np
import pandas as pd
ad_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")
print(df)
print(df.index)
lumns)
print(df[:5]) #输出前5⾏数据
print(df["评分"].dtype) #查看类型这⼀列的数据类型
print(df["评分"])
df["评分"]=df["评分"].astype("int") #进⾏数据表格的数据类型转换需要⽤到数据类型转换函数df["列名称"].astype("类型名称”)
print(df["评分"])
print(df["评分"].dtype)
print(df["地区"].dtype)
df["地区"]=df["地区"].astype("str") #将地区列的数据转换为字符串类型的数据
print(df["地区"].dtype)
print(df["地区"])
#表格数据的排序
print(df.sort_values(by="评分",ascending=False)["评分"]) #数据的排序⽤函数df.sort_values(by=列名
称,ascending=True(升)/False(降))
python新手代码大全pdfprint(df.sort_values(by=["评分","价格"],ascending=False))
print(df.sort_values(by=["评分","价格"],ascending=[False,True])[["评分","价格"]]) #多列排序问题(根据参数by=[,,]前后顺序代表了多列排序优先级顺序,ascending=[,,]代表了相应每列的排序原则(升降))
#数据的统计分析与描述
print(df.describe()) #给出⼀个数据表格⾥⾯所有列数据是数值型数据的统计指标(包括数据平均值、数⽬,中值,最⼩值,最⼤值)
print(df["价格"].mean())#输出价格列数据的平均值
print(df["价格"].var()) #输出价格列数据的⽅差
print(df["价格"].max()) #输出价格列数据的最⼤值
print(df["价格"].min()) #输出价格列数据的最⼩值
print(df["价格"].std()) #输出价格的标准差
print(df["价格"].median()) #输出价格的中位数
print(df[["价格","评分"]].corr()) #输出价格和评分的相关系数
print(df[["价格","评分"]].cov()) #输出价格和评分的协⽅差
print(len(df)) #计数统计
print(df["评分"].unique()) #查询⼀列数据中的所有唯⼀值
print(len(df["评分"].unique())) #查询出现唯⼀不同值的个数
df["评分"].replace(4,4.1,inplace=True) #表格评分数据中的替换(将4替换为4.1)
print(df["评分"])
print(df["地区"].unique()) #输出所有的唯⼀值
print(len(df["地区"].unique())) #输出⼀列数据中不同数据的个数
print(df["地区"].value_counts()) #对于每个唯⼀值出现的个数
print(df["地区"].value_counts()[:5]) #输出数据个数前五的地区及其出现的个数
#数据透视函数的使⽤和功能pd.pivot_table(df,index=[列1,列2...],values=[其余列1,其余列2...],aggfunc=,,fill_value=0(处理⾮数值性质数据),margins=True(总和统计数据),columns=[列1,列2...](只要是指列⽅向的分层,类似于index的⾏分层,⾮必要参数))
pd.set_option("max_columns",1000) #设置pyhton输出数据的⾏和列的最⼤⾏数⽬(⼤于设定值之后才会出现省略号)
pd.set_option("max_rows",1000)
print(df)
print(pd.pivot_table(df,index="地区")) #输出以地区为属性的各列数据均值
print(pd.pivot_table(df,index=["地区","类型"])) #输出以地区为第⼀层,类型为第⼆层的其他各列数据均值
print(pd.pivot_table(df,index=["地区","类型"],values=["价格"]))
print(pd.pivot_table(df,index=["地区","类型"],values=["价格"],aggfunc=[np.an]))
print(pd.pivot_table(df,index=["地区"],values=["评分","价格"],columns=["类型"],aggfunc={"评分":np.mean,"价
格":np.sum},fill_value=0))
table=pd.pivot_table(df,index=["地区","类型"],values=["价格"])
#print(table.sort_values(by="评分",ascending=False)) #对于评分进⾏降序排列
print(table.index)
运⾏结果如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论