pandas入门
来源:互联网 发布:加拿大北电网络市值 编辑:程序博客网 时间:2024/06/05 03:08
pandas含使得数据分析工作变得更快更简洁的高级数据结构和操作工具,基于NumPy构建。pandas的引入约定:(因为Series和DataFrame使用次数多,将其引入本地命名空间)
from pandas import Series, DataFrameimport pandas as pd
pandas 数据结构
Series
Series是一种类似于以为数组的对象,由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(索引)组成,可以通过Series的values和index获取其数组表示形式和索引对象。
可以为数据指定索引,通过索引的方式选取Series中的单个或一组值
NumPy数组运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引和值之间的链接
In: obj2 = Series([4, 7, -5, 3], index=['d','b','a','c'])In: obj2[obj2 > 0]Out: d 6 b 7 c 3
- 可以将Series看成一个定长的有序字典
In: 'b' in obj2Out: TrueIn: 'e' in obj2Out: FalseIn: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}Out: obj3 = Series(sdata)In: obj3Out: Ohio 35000 Oregon 16000 Texas 71000 Utah 5000
- 使用missing或NA表示缺失数据,isnull和notnull函数可用于检测缺失数据:
pd.isnull(obj4); pd.notnull(obj4)obj4.isnull()
在算术运算中自动对齐不同索引的数据
Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切
In [125]: obj3.name = 'population'In [126]: obj3.index.name = 'state'In [127]: obj3Out[127]: stateOhio 35000Oregon 16000Texas 71000Utah 5000Name: population, dtype: int64
- Series索引可以通过赋值就地修改
Series方法及属性
DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。DataFrame既有行索引也有列索引。
- 构建DataFrame最常用的方法是直接传入一个由等长列表或numpy数组组成的字典
In [128]: data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], ...: 'year': [2000, 2001, 2002, 2001, 2002], ...: 'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}In [129]: frame = DataFrame(data)In [130]: frameOut[130]: pop state year0 1.5 Ohio 20001 1.7 Ohio 20012 3.6 Ohio 20023 2.4 Nevada 20014 2.9 Nevada 2002
- 如果制定了列序列,DataFrame的列会按照指定顺序排列;如果传入的列在数据中找不到,产生NaN值:
In [132]: DataFrame(data, columns = ['year', 'state', 'pop'])Out[132]: year state pop0 2000 Ohio 1.51 2001 Ohio 1.72 2002 Ohio 3.63 2001 Nevada 2.44 2002 Nevada 2.9In [133]: frame2 = DataFrame(data, columns = ['year', 'state', 'pop', 'debt'], index=['one', 'two', 'three', 'four', 'five'])In [134]: frame2Out[134]: year state pop debtone 2000 Ohio 1.5 NaNtwo 2001 Ohio 1.7 NaNthree 2002 Ohio 3.6 NaNfour 2001 Nevada 2.4 NaNfive 2002 Nevada 2.9 NaN
- 通过类似字典标记的方式或属性方式,将DataFrame的列获取为一个Series:
In [135]: frame2['state']Out[135]: one Ohiotwo Ohiothree Ohiofour Nevadafive NevadaName: state, dtype: objectIn [136]: frame2.yearOut[136]: one 2000two 2001three 2002four 2001five 2002Name: year, dtype: int64
- 通过位置或名称获取行信息,如用索引字段ix(anaconda3 用loc)
In [138]: frame2.loc['three']Out[138]: year 2002state Ohiopop 3.6debt NaNName: three, dtype: object
赋值给列:将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配。如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值。为不存在的列赋值会创建出一个新列。
传入嵌套字典(字典的字典):外层字典的键作为列,内层键则作为行索引。
In [139]: pop = {'Nevada': {2001: 2.4, 2002: 2.9}, 'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}In [140]: frame3 = DataFrame(pop)In [141]: frame3Out[141]: Nevada Ohio2000 NaN 1.52001 2.4 1.72002 2.9 3.6
DataFrame方法与属性
索引对象
- 索引对象是不可修改,这样才能是index对象在多个数据结构间安全共享。
阅读全文
1 0
- pandas入门
- pandas入门
- Pandas入门
- Pandas入门
- pandas入门
- pandas入门
- Pandas 入门
- pandas入门
- Pandas入门
- pandas 数据分析入门
- pandas入门(持续更新)
- 10分钟入门pandas
- pandas入门-数据结构(1)
- pandas入门-数据结构(2)
- Python pandas 入门
- Pandas入门(上)
- Pandas入门(中)
- Pandas入门(下)
- [python]global全局变量
- SpringMVC(Thymeleaf)向JQuery传参
- storm介绍
- li span 中多个长短不一的checkbox如何上下对齐排列
- OpenCV3.1.0安装contrib模块的方法
- pandas入门
- C语言:返回传入字符串的长度
- java8-01-lambda
- hdu 6034 Balala Power!(DP)
- 简易计算器(2)- 语法分析(不使用Yacc)
- java基础之流和序列化
- 索引算法
- LintCode判断一个数是不是回文数
- 栈和队列