pandas是python下强大的数据分析和探索工具,是的python在处理数据时非常快速、简单。它是构建在numpy之上的,包含丰富的数据处理函数,支持时间序列分析功能,支持灵活处理缺失数据。

pandas基础

#安装

pip install pandas

pandas 基本的数据结构是 Series 和 DataFrame 。Series 就是序列,类似一维数组;DataFrame 则是相当于一张二维的表格,类似二维数组,它的每一列都是一个 Series 。每个 Series 都会带有一个对应的 Index ,用来标记不同的元素,Index 的内容可以是字母、数字、中文等。

Series

importnumpy as npimportpandas as pd#创建Series方法

方法1:s1 = pd.Series([1, 2, 3, 4])

方法2:s2= pd.Series(np.arange(10)) #通过numpy.arange创建

方法3:s3 = pd.Series({'1':1, '2':2, '3':3}) #通过字典创建

方法4:s4 = pd.Series([1, 2, 3, 4], index=['A', 'B', 'C', 'D']) #创建时设置索引

s1.values#查看值

s1.index #查看索引

DataFrame

from pandas importSeries, DataFrame

s1= s2 = s3 = Series([1, 2, 3])

df= DataFrame([s1, s2, s3], index=['A','B','C'], columns=[0, 1, 2])print(df) #DataFrame 包含 index 和 column,分别为行索引和列索引

out:

01 2A1 2 3B1 2 3C1 2 3df.index#查看行索引

df.column #查看列索引

pandas实用操作

I/O操作(df1表示DataFrame格式数据).

1、从粘贴板读取

df1.to_clipboard()#写入粘贴板

pd.read_clipboard() #复制后执行命令,即可读取到粘贴板中信息

2、CSV文件

df1.to_csv('名字.csv',index=False) #false则表示不添加索引号

pd.read_csv('df1.csv') #读取CSV文件

3、json

df1.to_json()#转化成json文件

pd.read_json(df1.to_json()) #读取json文件

4、html

df1.to_html('df1_html') #转换成HTML文件

5、excel

df1.to_excel('df1.xlsx') #生成Excel文件

查看数据(df1表示DataFrame格式数据)

df1.head() #返回前五行

df1.tail() #返回后五行#返回更多的内容则在括号中写出来,不写则默认为五行

df1.iloc[:,:]#索引切片,定位,基于index,与索引名无关

df1.loc[:,:] #根据索引名来,label来过滤

#取列(column)

df1[] #直接写column名便取得对应列,若要取多列,中括号内可以写个列表,eg:['A', 'B']

df1.T#转置

df1.describe() #快速查看数据的统计概要,包括count、mean、std、min等

#排序

df1.sort_index(axis=1, ascending=False) #按轴排序,axis表示轴(0为列,1为行),ascending表示正反序

df1.sort_values(by='') #by后写column,表示按该column值排序

数据运算

在 pandas 中运算会自动对齐 index 和 column 。下面举例说明。

在 Series 中,两个Series相加,会自动对齐索引,当索引没有时,则为NaN,NaN与任何数相加都为NaN,因此会出现图中【5】的结果,fill_value是将两个Series中的缺失项先填充,再进行相加运算。DataFrame数据同理,下面不加以赘述。

缺失值

缺失值可以用 numpy.nan 来表示,NaN 具有传染性,换句话说就是与 NaN 进行运算的结果都是 NaN 。对于含有 NaN 的普通函数计算结果均为 NaN,例如:

a = numpy.array([2, 3, 1, numpy.nan, 4])

numpy.sum(a)\numpy.min(a)\numpy.max(a)等均为NaN#但是其有安全模式,也就是忽略其中的 NaN 进行运算

numpy.nansum(a)\numpy.nanmin(a)\numpy.nanmax(a) 均会在已有数据中求相应的和,最大最小值

缺失值的发现

data.isnull()

data.notnull()#均返回布尔值

缺失值的去除

data.dropna(axis=0,how='any',thresh=None)#axis表示行和列0,1来表示#how为any时表示有Nan就删掉,为all时表示全为nan时才删掉#thresh表示一个界限,超过这个数字的nan则被删掉

缺失值的填充

data.fillna(axis=0, method=ffill) #或者参数只填一个数,即用该数字填充

axis 坐标轴,行或列

method 填充方式

ffill:forward-fill 从前向后填充

bfill:backward-fill 从后向前填充

合并(merge)

结合(concat)

pandas.concat(df1, df2, df3)

连接(join)

left= pd.DataFrame({'key': ['foo', 'foo'], 'lval':[1, 2]})

right= pd.DataFrame({'key': ['foo', 'foo'], 'rval':[1, 2]})

pd.merge(left, right, on="key")

out:

key lval rval

0 foo1 4

1 foo 1 5

2 foo 2 4

3 foo 2 5追加(append)

data1.append(data2, ignore_index=True)

数据透视表(Pivot Tables)

当分析庞大的数据时,为了更好的发掘数据特征之间的关系,且不破坏原数据,就可以利用透视表 `pivot_table` 进行操作。

新建表将 `A, B, C` 列作为索引进行聚合。

df= pd.DataFrame({'A': ['one', 'one', 'two', 'three'] * 3,'B': ['A', 'B', 'C'] * 4,'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 2,'D': np.random.randn(12),'E': np.random.randn(12)})

pd.pivot_table(df, index=['A', 'B'])1、透视表按指定行进行聚合

将该 DataFrame 的 `D` 列聚合,按照 `A, B` 列为索引进行聚合,聚合的方式为默认求均值。

pd.pivot_table(df, values=['D'], index=['A', 'B'])2、透视表聚合方式定义

上一题中 `D` 列聚合时,采用默认求均值的方法,若想使用更多的方式可以在 `aggfunc` 中实现。

pd.pivot_table(df, values=['D'], index=['A', 'B'], aggfunc=[np.sum, len])3、透视表利用额外列进行辅助分割

`D` 列按照 `A, B` 列进行聚合时,若关心 `C` 列对 `D` 列的影响,可以加入 `columns` 值进行分析。

pd.pivot_table(df, values=['D'], index=['A', 'B'],

columns=['C'], aggfunc=np.sum)4、透视表的缺省值处理

在透视表中由于不同的聚合方式,相应缺少的组合将为缺省值,可以加入 `fill_value` 对缺省值处理。

pd.pivot_table(df, values=['D'], index=['A', 'B'],

columns=['C'], aggfunc=np.sum, fill_value=0)

python数据分析工具_python数据分析工具 | pandas相关推荐

  1. python数据建模工具_python数据分析工具——Pandas、StatsModels、Scikit-Learn

    Pandas Pandas是 Python下最强大的数据分析和探索工具.它包含高级的数据结构和精巧的工具,使得在 Python中处理数据非常快速和简单. Pandas构建在 Numpy之上,它使得以 ...

  2. python数据分析软件_Python数据分析工具

    Numpy Python没有提供数组功能,虽然列表可以完成基本的数组功能,但他不是真正的数组.Numpy内置函数处理速度是c语言级别,因此尽量使用内置函数,避免出现效率瓶颈的现象. Numpy的安装: ...

  3. python数据分析图_Python数据分析:手把手教你用Pandas生成可视化图表的教程

    大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后, ...

  4. python 统计分析 包_Python 数据分析包:pandas 基础

    pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据 ...

  5. python 数据分析模块_Python数据分析pandas模块用法实例详解

    本文实例讲述了Python数据分析pandas模块用法.分享给大家供大家参考,具体如下: pandas pandas10分钟入门,可以查看官网:10 minutes to pandas 也可以查看更复 ...

  6. python组成结构_Python数据分析丨pandas基本数据结构组成

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:统计学家 目录 1引言 2 Series数组 2.1 ...

  7. python 数组 运算_python数据分析(二) python numpy--数组和矢量运算--数组对象

    Numpy numpy是数值计算最重要的基础包,几乎所有的科学运算的模块底层所用的都是numpy数组. Numpy本身没有提供多么高级的数据分析功能,他所提供的功能主要是: 1.具有矢量算术运算(用数 ...

  8. python ppt 绘图_Python数据分析-Matplotlib绘图基础

    本文结构: 一.Matplotlib绘图基础及中文乱码解决 二.如何利用pandas绘图? 三.如何利用notebook制作分析报告? 图形在我们日常生活中无处不在.如果没有可视化,就是一些数字罗列, ...

  9. python统计分析书籍_Python数据分析入门书籍推荐

    在当下这个数据驱动的时代,毫不夸张的说各行各业的商业决策和运营管理都离不开数据分析,因此数据分析已经成为当前每个人的必备技能和加分项.对于许多初学者来讲,想要入门Python数据分析常常不知道从何下手 ...

  10. python 卡方分布值_python数据分析探索变量之间的关系

    探索变量之间的关系 引言 深入探索分析数据价值有几个重要步骤:①变量的分布检验,②探索变量间的关系,③建立关系模型,④评估,⑤总结结论与建议.接下来看看数据分析的重要一环–「探索变量间的关系」. 1 ...

最新文章

  1. php文本域输出_PHP转换文本框内容为HTML格式的方法
  2. 主宰全球的10大算法
  3. 翻窗户消失的百岁老人/百岁老人跷家去 中文字幕
  4. MySQL之innodb与myisam:锁 事务 外键 主键 存储结构 存储大小 索引 count 注重点
  5. core-site.xml
  6. navicat创建计算列_Tableau Part 9 计算字段amp;粒度聚合比率amp;表计算
  7. 显卡直通_英伟达RTX 30系显卡发布:性价比打哭2080Ti
  8. Web全栈架构师到底会些啥?凭什么年薪30万以上?
  9. 安卓模拟器安装教程_雷电安卓模拟器v4.0.38绿色免安装版——墨涩网
  10. 验证座机号码是否输入格式正确
  11. KM盒子表格排版操作技巧
  12. 从2009到2020,世界编程语言排行榜分析
  13. 职称英语计算机考试取消,2020年职称英语考试取消了吗
  14. vue3中的watch和watchEffect
  15. 开发环境 -- 在linux中写一个脚本拷机
  16. html日历页面节假日_html+css+js实现一个简易日历
  17. 读《深入理解计算机系统》
  18. nexus 5x刷入twrp 安装xposed框架
  19. 中华大地第二次大变革 看印度反思自我之四 印度穷人甘做“贫民窟业主”
  20. 税控服务器信息维护,税控服务器管理系统操作介绍(IE6版).ppt

热门文章

  1. 【电力负荷预测】基于matlab灰狼算法优化LSTM短期电力负荷预测【含Matlab源码 1518期】
  2. 【背包问题】基于matlab离散粒子群算法求解0-1背包问题【含Matlab源码 1342期】
  3. 【车牌识别】基于matlab GUI模板匹配车牌识别【含Matlab源码 958期】
  4. 【图像压缩】基于matlab GUI小波变换图像压缩【含Matlab源码 609期】
  5. 【优化预测】基于matlab人工鱼群算法优化BP神经网络预测【含Matlab源码 523期】
  6. 人均维护服务器数量,华为FusionCube一体机助力金华职业技术学院构建最佳云平台...
  7. 原图像中的68个关键点是怎么获取_武汉课工场云计算培训:一级运动模型在动图中的应用...
  8. 使用ajax请求cgi,Python CGI同步AJAX请求
  9. 一篇Rust的30分钟介绍
  10. Java中的内存处理机制和final、static、final static总结