pandas:数据分析
一、介绍
pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的。
1.主要功能
具备对其功能的数据结构DataFrame、Series
集成时间序列功能
提供丰富的数学运算和操作
灵活处理缺失数据
2.安装方法
pip install pandas
3.引用方法
import pandas as pd
二、Series
Series是一种类似于一位数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。
获取值数组和索引数组:values属性和index属性
Series比较像列表(数组)和字典的结合体。
创建方式:
pd.Series([4,7,-5,3])
pd.Series([4,7,-5,3],index=['a','b','c','d'])
pd.Series({'a':1, 'b':2})
pd.Series(0, index=['a','b','c','d’])
Series支持字典的特性(标签):
- 从字典创建Series:Series(dic),
- in运算:’a’ in sr、for x in sr
- 键索引:sr['a'], sr[['a', 'b', 'd']]
- 键切片:sr['a':'c']
- 其他函数:get('a', default=0)等
In [12]: s = pd.Series(0,index=['a','b','c','d']) In [13]: s.a
Out[13]: 0 In [14]: v = pd.Series({'a':1,'b':2}) In [15]: v.a
Out[15]: 1 In [16]: v.b
Out[16]: 2 In [17]: v[0]
Out[17]: 1 In [18]: s*2
Out[18]:
a 0
b 0
c 0
d 0
dtype: int64 In [19]: v*2
Out[19]:
a 2
b 4
dtype: int64
三、整数索引
整数索引的pandas对象往往会使新手抓狂。
例:
- sr = np.Series(np.arange(4.))
- sr[-1]
如果索引是整数类型,则根据整数进行数据操作时总是面向标签的。
- loc属性 以标签解释
- iloc属性 以下标解释
四、Series数据对齐
pandas在运算时,会按索引进行对齐然后计算。如果存在不同的索引,则结果的索引是两个操作数索引的并集。 例:
sr1 = pd.Series([12,23,34], index=['c','a','d'])
sr2 = pd.Series([11,20,10], index=['d','c','a',])
sr1+sr2
sr3 = pd.Series([11,20,10,14], index=['d','c','a','b'])
sr1+sr3 如何在两个Series对象相加时将缺失值设为0?
sr1.add(sr2, fill_value=0)
灵活的算术方法:add, sub, div, mul
五、Series缺失数据
1、缺失数据:使用NaN(Not a Number)来表示缺失数据。其值等于np.nan。内置的None值也会被当做NaN处理。
2、处理缺失数据的相关方法:
- dropna() 过滤掉值为NaN的行
- fillna() 填充缺失数据
- isnull() 返回布尔数组,缺失值对应为True
- notnull() 返回布尔数组,缺失值对应为False
3、过滤缺失数据:sr.dropna() 或 sr[data.notnull()]
4、填充缺失数据:fillna(0)
六、DataFrame
DataFrame是一个表格型的数据结构,含有一组有序的列。
DataFrame可以被看做是由Series组成的字典,并且共用一个索引。
创建方式:
- pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})
- pd.DataFrame({'one':pd.Series([1,2,3],index=['a','b','c']), 'two':pd.Series([1,2,3,4],index=['b','a','c','d'])})
- ……
csv文件读取与写入:
- df.read_csv('E:\算法\day110 Numpy、Pandas模块\601318.csv')
- df.to_csv()
七、DataFrame查看数据
查看数据常用属性及方法:
index 获取索引
T 转置
columns 获取列索引
values 获取值数组
describe() 获取快速统计 DataFrame各列name属性:列名
rename(columns={})
八、DataFrame索引和切片
DataFrame使用索引切片:
方法1:两个中括号,先取列再取行。 df['A'][0]
方法2(推荐):使用loc/iloc属性,一个中括号,逗号隔开,先取行再取列。
loc属性:解释为标签
iloc属性:解释为下标
向DataFrame对象中写入值时只使用方法2
行/列索引部分可以是常规索引、切片、布尔值索引、花式索引任意搭配。(注意:两部分都是花式索引时结果可能与预料的不同)
通过标签获取:
df['A']
df[['A', 'B']]
df['A'][0]
df[0:10][['A', 'C']]
df.loc[:,['A','B']] #行是所有的行,列取是A和B的
df.loc[:,'A':'C']
df.loc[0,'A']
df.loc[0:10,['A','C']] 通过位置获取:
df.iloc[3]
df.iloc[3,3]
df.iloc[0:3,4:6]
df.iloc[1:5,:]
df.iloc[[1,2,4],[0,3]]、 通过布尔值过滤:
df[df['A']>0]
df[df['A'].isin([1,3,5])]
df[df<0] = 0
九、DataFrame数据对齐与缺失数据
DataFrame对象在运算时,同样会进行数据对齐,行索引与列索引分别对齐。
结果的行索引与列索引分别为两个操作数的行索引与列索引的并集。
DataFrame处理缺失数据的相关方法:
- dropna(axis=0,where=‘any’,…) 过滤掉值为NaN的行
- fillna() 填充缺失数据
- isnull() 返回布尔数组,缺失值对应为True
- notnull() 返回布尔数组,缺失值对应为Fals
pandas:数据分析的更多相关文章
- 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题
动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...
- python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)
//2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...
- pyhton pandas数据分析基础入门(一文看懂pandas)
//2019.07.17 pyhton中pandas数据分析基础入门(一文看懂pandas), 教你迅速入门pandas数据分析模块(后面附有入门完整代码,可以直接拷贝运行,含有详细的代码注释,可以轻 ...
- pyhton中pandas数据分析模块快速入门(非常容易懂)
//2019.07.16python中pandas模块应用1.pandas是python进行数据分析的数据分析库,它提供了对于大量数据进行分析的函数库和各种方法,它的官网是http://pandas. ...
- Pandas数据分析python环境说明文档
1. 要求windows系统 2. pycharm编程环境并要求配置好python3.x环境 pycharm可在官网下载,下面是链接. https://www.jetbrains.com/zh/pyc ...
- PANDAS 数据分析初学者教程
Pandas 初学者教程 2018-05-19 六尺巷人 对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重要的Python包.它不仅提供了很多方法,使得数据处理非常 ...
- pandas数据分析案例
1.数据分析步骤 ''' 数据分析步骤: 1.先加载数据 pandas.read_cvs("path") 2.查看数据详情 df.info() ,df.describe() ,df ...
- pandas数据分析小知识点(一)
最近工作上,小爬经常需要用python做一些关于excel数据分析的事情,显然,从性能和拓展性的角度出发,使用pandas.numpy是比vba更好的选择.因为pandas能提供诸如SQL的很多查找. ...
- (数据科学学习手札72)用pdpipe搭建pandas数据分析流水线
1 简介 在数据分析任务中,从原始数据读入,到最后分析结果出炉,中间绝大部分时间都是在对数据进行一步又一步的加工规整,以流水线(pipeline)的方式完成此过程更有利于梳理分析脉络,也更有利于查错改 ...
- Pandas 数据分析——超好用的 Groupby 详解
在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别.年龄) ...
随机推荐
- layui table中使用checkbox
第一步: 1. <div class="layui-form"> <table class="layui-hide" lay-filter=& ...
- 杭电acm 1098题
Problem Description Ignatius is poor at math,he falls across a puzzle problem,so he has no choice bu ...
- Entity Framework Code-First(9.10):DataAnnotations - NotMapped Attribute
DataAnnotations - NotMapped Attribute: NotMapped attribute can be applied to properties of a class. ...
- 网页设计与开发——HTML、CSS、JavaScript (王津涛) pdf扫描版
网页设计与开发——html.css.javascript从网页制作实际出发,除了详细地介绍html页面制作.css样式控制和javascript动态程序之外,还介绍了html 5.全书共分15章,各章 ...
- 大数据实习之spark
Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架. 与 Hadoop 和 Storm 等其他大数据和 MapReduce 技术相比,Spark 有如下优势. 首先,Spar ...
- Zookeeper安装和部署
Zookeeper安装和部署:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用 ...
- Ajax的完整兼容各种浏览器版本代码
<script type="text/javascript"> function createAjax(){ var request=false; //window对象 ...
- elasticsearch 基本介绍
1. Elasticsearch的适用场景: (1)类似百度百科的全文检索,高亮,搜索推荐(2)新闻类的搜索,用户行为日志(点击,浏览,收藏,评论)+社交网络数据(对某某新闻的相关看法),数据分析,给 ...
- java整理(二)
1.this关键字.this表示属性,表示方法和当前对象. this.属性调用属性. 方法分为两类,构造方法和普通方法,他们的调用形式是不同的.调用本类的方法this.方法()(这是调用普通方法)如果 ...
- [Xcode 实际操作]四、常用控件-(1)UIButton控件的使用
目录:[Swift]Xcode实际操作 本文将演示按钮控件的使用,按钮是用户界面中最常见的交互控件 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import U ...