python pandas数据分析基础入门2——(数据格式转换、排序、统计、数据透视表)
//2019.07.18
pyhton中pandas数据分析学习——第二部分
2.1 数据格式转换
1、查看与转换表格某一列的数据格式:
(1)查看数据类型:某一列的数据格式:df["列属性名称"].dtype
(2)数据类型转换:某一列的数据类型转换需要用到数据转换函数:
df[列属性名称]=df[列属性名称].astype("新的数据类型")
代码举例如下:
import numpy as np
import pandas as pd
df=pd.read_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=[True,False...])
其中函数参数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[[1,2...]].corr()
协方差:df[[1,2...]].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=np.sum...,,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.sum,np.mean]))
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
df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")
print(df)
print(df.index)
print(df.columns)
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(降))
print(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=np.sum...,,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.sum,np.mean]))
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) 运行结果如下:
python pandas数据分析基础入门2——(数据格式转换、排序、统计、数据透视表)的更多相关文章
- pyhton pandas数据分析基础入门(一文看懂pandas)
//2019.07.17 pyhton中pandas数据分析基础入门(一文看懂pandas), 教你迅速入门pandas数据分析模块(后面附有入门完整代码,可以直接拷贝运行,含有详细的代码注释,可以轻 ...
- 【转载】使用Pandas创建数据透视表
使用Pandas创建数据透视表 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas创建数据透视表 目录 pandas.pivot_table() 创建简单的数据透视表 增加一个行维度(inde ...
- python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)
//2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...
- 小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 【转】在Python的struct模块中进行数据格式转换的方法
这篇文章主要介绍了在Python的struct模块中进行数据格式转换的方法,文中还给出了C语言和Python语言的数据类型比较,需要的朋友可以参考下 Python是一门非常简洁的语言,对于数据类型的表 ...
- MyBatis基础入门《十三》批量新增数据
MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =============================== ...
- MyBatis基础入门《十二》删除数据 - @Param参数
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...
- MyBatis基础入门《十 一》修改数据
MyBatis基础入门<十 一>修改数据 实体类: 接口类: xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnbl ...
- python pandas使用数据透视表
1) 官网啰嗦这一堆, pandas.pivot_table函数中包含四个主要的变量,以及一些可选择使用的参数.四个主要的变量分别是数据源data,行索引index,列columns,和数值value ...
随机推荐
- Can you answer these queries?-HDU4027 区间开方
题意: 给你n个数,两个操作,0为区间开方,1为区间求和 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 思路: 如果当该区间的数都为1,我们没必要 ...
- java.lang.ClassCastException: android.app.Application cannot be cast to
出这个异常的原因是在项目中添加了新lication类(public class Application extends lication)之后,没有在AndroidManifest.xml中添加该类的 ...
- 「ZJOI2006」物流运输
题目 [内存限制:$256MiB$][时间限制:$1000ms$] [标准输入输出][题目类型:传统][评测方式:文本比较] [题目描述] 物流公司要把一批货物从码头 A 运到码头 B.由于货物量比较 ...
- pytorch张量数据索引切片与维度变换操作大全(非常全)
(1-1)pytorch张量数据的索引与切片操作1.对于张量数据的索引操作主要有以下几种方式:a=torch.rand(4,3,28,28):DIM=4的张量数据a(1)a[:2]:取第一个维度的前2 ...
- javaScript中this的指向?
javaScript中this对象是在运行时基于函数的执行环境绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象. 但在实际中,代码环境复杂,th ...
- java并发之CopyOnWriteArraySet
java并发之CopyOnWriteArraySet CopyOnWriteArraySet是基于CopyOnWriteArrayList实现的,持有CopyOnWriteArrayList的内部对象 ...
- C++ 定位错误行
] = {}; SYSTEMTIME st; GetLocalTime(&st); sprintf_s(buf, , "%02d-%02d-%02d %02d:%02d:%02d | ...
- java虚拟机之垃圾回收机制
一.需要回收的内存区域 程序计数器.虚拟机栈.本地方法栈 3 个区域随线程生灭(因为是线程私有),栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作.而 Java 堆和方法区则不一 ...
- laravel-url去掉public
把laravel/server.php改名为index.php 并且将public目录下的.htaccess拷贝到Larvael根目下 Ok了 but why? 自己查去吧
- 如何知道某个ACTIVITY是否在前台?
本文链接:http://zengrong.net/post/1680.htm 有一个Android应用包含包含一个后台程序,该程序会定期连接服务器来实现自定义信息的推送.但是,当这个应用处于前台的时候 ...