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库—数据艺术家相关推荐

  1. Python数据分析之Pandas库

    Python数据分析之Pandas库 一.Pandas简介 二.Pandas库的安装 三.Pandas的数据结构 四.Series 和 DataFrame 数据结构的使用 五.其他可以参考的网站 一. ...

  2. 四、Python数据挖掘(Pandas库)

    四.Python数据挖掘(Pandas库) 目录: 四.Python数据挖掘(Pandas库) 一.Pandas 简介 二.Pandas 三大结构之--DataFrame 1.DataFrame 的创 ...

  3. python怎么导入pandas库_Python之2-Pandas数据导入导出

    Pandas可以读取与存取像CSV\EXCEL\JSON\HTML\SQL数据库等格式的资料,具体如下: 一:从excel中读取数据并另存一张表 #读取excel中的数据 bill=pd.read_e ...

  4. Python数据分析~Pandas库30分钟快速入门

    目录 1  Pandas序列和数据表 2 Pandas数据聚合与分组运算 3 Pandas数据可视化 Pandas库在数据分析中是非常重要和常用的库,它利用数据框让数据的处理和操作变的简单和快捷.在数 ...

  5. Python 强大的信号库 blinker 入门教程

    作者:金色旭光 来源:https://www.cnblogs.com/goldsunshine/p/15426970.html 1 信号 信号是一种通知或者说通信的方式,信号分为发送方和接收方.发送方 ...

  6. Python 中的Pandas库

    待总结 用scikit-learn和pandas学习线性回归 用scikit-learn和pandas学习Ridge回归 基于python的数据分析库Pandas pandas--Python 数据分 ...

  7. 使用Python Seaborn和Pandas进行数据可视化

    Hey, folks! Today we will be unveiling a very interesting module of Python - Seaborn Module and will ...

  8. Python数据分析之pandas库的使用详解

    本篇文章所依据是蚂蚁学Python作者讲解所写,且已征求作者的同意,内容基本都是视频中所讲的内容.视频满满的全是干货,也可一边看视频一边配合着本篇文章. 作者的公众号:蚂蚁学Python 作者也提供了 ...

  9. python中的pandas库_数据分析中 pandas 库的基本用法详解

    上篇分享了数据分析用到的一个库:Numpy 库,今天分享一个比 Numpy 更高效的库:pandas,它可以对数据进行导入.清洗.处理.统计和输出.pandas 是基于 Numpy 库的,可以说,pa ...

最新文章

  1. 终端输入参数:argparse和sys.argv[]的用法
  2. Web Dynpro for ABAP 之 Web Dynpro Window Web Dynpro Application
  3. C++实现N选R的实现算法(附完整源码)
  4. openssl漏洞检查
  5. tcp欢动窗口机制_TCP协议中的窗口机制------滑动窗口详解
  6. telnet 无法连接_Telnet 为什么不能以 root 身份登录系统?
  7. 并行程序设计导论_C程序设计导论
  8. [转载]8种防盗链的方法
  9. matlab三角二倍角公式,数学三角函数常用的二倍角公式
  10. 无源贴片晶振四角引脚_晶振厂家告诉你贴片晶振的脚位方向如何区分 - 中山惠源晶工...
  11. 下载编译chromium
  12. 带有打开密码的压缩包如何解压
  13. GNSS原理及技术(一)——GNSS现状与发展
  14. 在PPT中批量导入图片
  15. Linux-引导过程与服务控制
  16. React-signature-phone 移动端电子签名
  17. Mqtt通信协议详解
  18. 中科院自动化所研究员报——报告
  19. 电机控制器,FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计
  20. 创新的时机 – 黄金点游戏

热门文章

  1. 热烈欢迎成都市武侯区人社局领导莅临璞华考察参观
  2. 我被非洲男人骗婚了!来,诈骗者资料卖给你!
  3. ghost系统之家GhostXP_SP3加强版V8.0[NTFS]_2010.4
  4. 【MAPBOX基础功能】13、mapbox点击线图层高亮指定的线段
  5. vue项目中的elementui的表格中画甘特图
  6. centos7安装tinyproxy代理服务器
  7. 分支限界法——以单源最短路径为例,理解什么是分支限界法
  8. 采用迟滞比较的简单比较法
  9. React Native 学习资源精选仓库
  10. 电脑HDMI连接电视,电视声卡被禁用解决方法