Python强大的Pandas库—数据艺术家
Python强大的Pandas库—数据艺术家
日期:2021/4/21
作者:就叫易易好了
pandas是Python中的一个库,是一个强大的分析结构化数据集。
pandas中的常见的数据结构有两种:
Series:类似于一维数组的对象
DataFrame:类似多维数组/表格数组,每列数据可以是不同的类型数据
文章目录
- Python强大的Pandas库—数据艺术家
- 1、基本操作
- 2、选择数据
- 3、pandas设置值,修改值
- 4、处理丢失数据
- 5、导入导出数据
- 6、合并多个DataFrame
- 7、数据可视化
1、基本操作
建立一个列表
import pandas as pd
import numpy as np
s=pd.Seris([1,55,67,8,np.nan,22])
print(s)
运行结果为:
建立一个多维数组DataFrame
df=pd.DataFrame(np.random.randn(6,4),
index=['1','2','3','4','5','6'],columns=['a','b','c','d'])
print(df)
#行的索引是index,列的索引是columns
用1,2,3,4,5,6定义行的索引,用字母a,b,c,d定义列的索引,生成随机数
运行结果为:
也可以不规定行和列的索引,用默认的索引
df1=pd.DataFrame(np.arange(12).reshape((3,4)))
print(df1)
运行结果为:
可以用字典的方式来建立二维表
df2=pd.DataFrame({'A':1.,'B':pd.Timestamp('20210421'),'C':pd.Series(1,index=list(range(4)),dtype='float32'),'D':np.array([3]*4,dtype='int32'),'E':pd.Categorical(["mm","gg","mm","gg"]),'F':'lala'
})
df2
运行结果为:
可以用dtypes来查看各个数据类型
可以用index来查看所有行的序号,columns查看所有列的序号
values可以打印每一行的数据
describe可以描述数据类型
可以看到,describe只能运算数值形式,不能运算非数值形式
count:数量统计,此列共有多少有效值
unipue:不同的值有多少个
std:标准差
min:最小值
25%:四分之一分位数
50%:二分之一分位数
75%:四分之三分位数
max:最大值
mean:均值
#排序
可以用sort_index进行排序,axis可以有两种值,等于1的话就是对列进行操作,等于0的话就是对行进行操作。
ascending是升序的意思,ascending=False说明将列按照降序进行排列。
我们不仅可以用index进行排列,还可以根据实际数据进行排序。比如我要对E进行排序
2、选择数据
现在建立一个二维表格
如果我现在要选择A这一列的数据,可以这样:
我们也可以用loc标签来选择数据:
如果我需要提取2020年4月20号的数据,可以
print(df.loc['20200420'])
也就是将年份为20210420这行数据打印出来。
iloc标签:通过位置来选择
如果我要打印第三行的数据:(索引的第3行,实际位置是第4行)
如果我要打印第三行,第一列的数据:
如果我要打印第三行到第五行,第1列到第3列的数据
如果我要打印第1,3,5行,第1到3列的数据
3、pandas设置值,修改值
还是这个数据集
dates=pd.date_range('20210420',periods=6)
df=pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=['A','B','C','D'])
现在我想把索引值的第2行第3列改成123
如下:
如果我要将横向标签为20210420的B栏改成111的话,可以这样:
如果我要将A列所有大于4的行,全部置为0,可以用以下办法:
如果我要插入两列E,F,并将其值置为空:
4、处理丢失数据
现在假装有丢失数据,我人为的将索引序列的第0行第1列,第1行第2列置为空。
我现在要处理这些不完整数据:
- 如果我要这个丢失数据所在的整个行数据丢掉
其中,axis=0代表行,axis=1代表列。
how=‘any’,意思是只要此行里面任意一个数据为空,就删除这个行。
how=‘all’,意思是需要此行数据里面所有的数据为空,才删除这个行。
如果我现在要填充这些空值:
如果我要检查这个二维表格中是否有缺失值,哪些是缺失的
5、导入导出数据
假如有一个csv文件名为"lover.csv",要将其导入进pandas,只需要加上这样的代码:
import pandas as pd
pd=pd.read_csv('lover.csv')
6、合并多个DataFrame
#concat
先创建几个DataFrame
import pandas as pd
import numpy as np
df1=pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])
df2=pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])
df3=pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d'])
print(df1)
print(df2)
print(df3)
运行结果为:
我们现在将其合并
res=pd.concat([df1,df2,df3],axis=0) #竖向合并
我们发现,最前面的索引是012-012-012,如果我要忽略这个索引,重新建立索引,可以用这个语句:
res=pd.concat([df1,df2,df3],axis=0,ignore_index=True)
#join,[‘inner’,‘outer’]
如果两个DataFrame的横向索引不一样,如下图所示:
如果直接用concat合并的话:
即没有的数据会用NAN填充,这种连接方式就是join的outer连接。
而inner连接会将两个DataFrame的相同索引连接起来,互相没有的索引会将其裁减掉:
如果我要横向合并,那当然是要把axis置为1,但是横向的索引不一样,所以此时我们可以让其遵守其中某一个DataFrame的索引
如果没有加入join_axes这串代码,那合并后的横向索引就是1 2 3 4
#merge
我现在创建两个DataFrame:
如果我要将这两个DataFrame用love这个列相连接,可以用merge
res=pd.merge(df1,df2,on='love')
merge连接默认的是inner
7、数据可视化
#Series
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data=pd.Series(np.random.randn(1000),index=np.arange(1000)) #随机生成1000个数
data=data.cumsum() #将这1000个数据进行累加
data.plot()
plt.show()
运行结果如下:
#DataFrame
data=pd.DataFrame(np.random.randn(1000,4),index=np.arange(1000),columns=list('ABCD'))
data=data.cumsum()
data.plot()
plot methods:
- bar
- hist
- box
- kde
- area
- scatter
比如scatter只能有两条属性,一个X一个Y
data=pd.DataFrame(np.random.randn(1000,4),index=np.arange(1000),columns=list('ABCD'))
data=data.cumsum()
ax=data.plot.scatter(x='A',y='B',color='SkyBlue',label='Class 1')
data.plot.scatter(x='A',y='C',color='Green',label='Class 2',ax=ax)
plt.show()
基础先介绍到这里啦,对于数据可视化的部分,会专门写一个博文。大家互相学习,一起加油
Python强大的Pandas库—数据艺术家相关推荐
- Python数据分析之Pandas库
Python数据分析之Pandas库 一.Pandas简介 二.Pandas库的安装 三.Pandas的数据结构 四.Series 和 DataFrame 数据结构的使用 五.其他可以参考的网站 一. ...
- 四、Python数据挖掘(Pandas库)
四.Python数据挖掘(Pandas库) 目录: 四.Python数据挖掘(Pandas库) 一.Pandas 简介 二.Pandas 三大结构之--DataFrame 1.DataFrame 的创 ...
- python怎么导入pandas库_Python之2-Pandas数据导入导出
Pandas可以读取与存取像CSV\EXCEL\JSON\HTML\SQL数据库等格式的资料,具体如下: 一:从excel中读取数据并另存一张表 #读取excel中的数据 bill=pd.read_e ...
- Python数据分析~Pandas库30分钟快速入门
目录 1 Pandas序列和数据表 2 Pandas数据聚合与分组运算 3 Pandas数据可视化 Pandas库在数据分析中是非常重要和常用的库,它利用数据框让数据的处理和操作变的简单和快捷.在数 ...
- Python 强大的信号库 blinker 入门教程
作者:金色旭光 来源:https://www.cnblogs.com/goldsunshine/p/15426970.html 1 信号 信号是一种通知或者说通信的方式,信号分为发送方和接收方.发送方 ...
- Python 中的Pandas库
待总结 用scikit-learn和pandas学习线性回归 用scikit-learn和pandas学习Ridge回归 基于python的数据分析库Pandas pandas--Python 数据分 ...
- 使用Python Seaborn和Pandas进行数据可视化
Hey, folks! Today we will be unveiling a very interesting module of Python - Seaborn Module and will ...
- Python数据分析之pandas库的使用详解
本篇文章所依据是蚂蚁学Python作者讲解所写,且已征求作者的同意,内容基本都是视频中所讲的内容.视频满满的全是干货,也可一边看视频一边配合着本篇文章. 作者的公众号:蚂蚁学Python 作者也提供了 ...
- python中的pandas库_数据分析中 pandas 库的基本用法详解
上篇分享了数据分析用到的一个库:Numpy 库,今天分享一个比 Numpy 更高效的库:pandas,它可以对数据进行导入.清洗.处理.统计和输出.pandas 是基于 Numpy 库的,可以说,pa ...
最新文章
- 终端输入参数:argparse和sys.argv[]的用法
- Web Dynpro for ABAP 之 Web Dynpro Window Web Dynpro Application
- C++实现N选R的实现算法(附完整源码)
- openssl漏洞检查
- tcp欢动窗口机制_TCP协议中的窗口机制------滑动窗口详解
- telnet 无法连接_Telnet 为什么不能以 root 身份登录系统?
- 并行程序设计导论_C程序设计导论
- [转载]8种防盗链的方法
- matlab三角二倍角公式,数学三角函数常用的二倍角公式
- 无源贴片晶振四角引脚_晶振厂家告诉你贴片晶振的脚位方向如何区分 - 中山惠源晶工...
- 下载编译chromium
- 带有打开密码的压缩包如何解压
- GNSS原理及技术(一)——GNSS现状与发展
- 在PPT中批量导入图片
- Linux-引导过程与服务控制
- React-signature-phone 移动端电子签名
- Mqtt通信协议详解
- 中科院自动化所研究员报——报告
- 电机控制器,FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计
- 创新的时机 – 黄金点游戏