Pandas入门---Series和DataFrame
2016-10-23 17:01
246 查看
Pandas入门—Series和DataFrame
概述:pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具,pandas是基于Numpy构建的。pandas在过去的几年中逐渐成长为一个非常强大的库。pandas的数据结构介绍
引入pandas>>> from pandas import Series,DataFrame >>> import pandas as pd
pandas有两个主要的数据结构:Series和DataFrame.
Series
Series是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据即可产生最简单的Series:>>> obj = Series([4,7,-5,3]) >>> obj 0 4 1 7 2 -5 3 3 dtype: int64
Series的字符串表现形式为:索引在左边,值在右边。你可以通过Series的values和index属性获取其数组表现形式和索引对象:
>>> obj.values array([ 4, 7, -5, 3], dtype=int64) >>> obj.index RangeIndex(start=0, stop=4, step=1)
通常,我们希望所创建的Series带有一个可以对各个数据点进行标记的索引:
>>> obj2 = Series([4,7,-5,3],index=['d','b','a','c']) >>> obj2 d 4 b 7 a -5 c 3 dtype: int64
与普通的Numpy相比,你可以通过索引的方式选取Series的单个或者一组值
>>> obj2['a'] -5 >>> obj2[['a','b']] #注意这里是双层[] a -5 b 7 dtype: int64
Numpy数组运算都会保留索引和值之间的链接。
>>> obj2 * 2 d 8 b 14 a -10 c 6
还可以将Series看成是定长的有序字典,因为它是索引值到数据值的一个映射。
>>> 'b' in obj2 True
如果数据存放在Python字典中,可以直接转成Series:
>>> sdata = {'test':1,'hello':2} >>> obj3 = Series(sdata) >>> obj3 hello 2 test 1 dtype: int64
NaN(非数字),在pandas中,它代表缺失或NA值。使用缺失(missing)或NA表示缺失数据。pandas的isnull和notnull函数可以用于检测缺失数据。
Series也有类似的方法。
>>> states = ['test','haha'] >>> obj4 = Series(sdata,states) >>> obj4 test 1.0 haha NaN dtype: float64 >>> obj4.isnull() test False haha True dtype: bool
Series的一个重要功能是:它在算术运算中会自动地对其不同索引的数据。
Series对象本身及索引都有一个name的属性,该属性跟pandas其他的关键功能关系非常密切。
>>> obj4.name = 'sunpeng' >>> obj4.index.name = 'llala' >>> obj4 llala test 1.0 haha NaN Name: sunpeng, dtype: float64
Series的索引也可以通过赋值的方式就地修改。
DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共同用一个索引)。和其他类似的数据结构相比,DataFrame中面向行和面向列的操作基本上是平衡的。其实,DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的数据结构)。构建DataFrame的方法有很多,最常用的方法是直接传入一个由等长列表或Numpy数组组成的字典:
>>> data = {'state':['1','2'],'year':['a','b'],'pop':['x','y']} >>> data {'state': ['1', '2'], 'pop': ['x', 'y'], 'year': ['a', 'b']} >>> frame = DataFrame(data) >>> frame pop state year 0 x 1 a 1 y 2 b
结果DataFrame会自动加上索引,且全部列会被有序排列。
如果指定了列顺序,则DataFrame的列就会按照指定顺序进行排列。
>>> DataFrame(data,columns=['year','pop','state']) year pop state 0 a x 1 1 b y 2
如果穿入的列在数据中找不到,就会产生NA值。
通过类似字典标记的方式或属性的方式,可以讲DataFrame的列获取为一个Series。
相关文章推荐
- Pandas入门—Series和DataFrame
- Pandas入门1-Series与DataFrame
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
- 利用 Python 进行数据分析(七)pandas 简单介绍(Series 和 DataFrame)
- 数据分析之Pandas(一):Series、DataFrame基本操作及索引对象
- pandas DataFrame(5)-合并DataFrame与Series
- pandas入门——Series
- 数据分析之Pandas-01Series和DataFrame
- Python pandas基础: Series和DataFrame的简单介绍
- python pandas中series与dataframe
- pandas的数据类型之Series,DataFrame
- Python之Pandas中Series、DataFrame实践
- pandas入门——创建series
- pandas 入门:DataFrame的创建,读写,插入和删除
- Pandas入门:DataFrame的简单应用
- Pandas 数据结构(Series,DataFrame)
- Python之Pandas中Series、DataFrame实践
- pandas把dataframe转成Series,改变列中值的类型方法
- Python之Pandas中Series、DataFrame
- pandas 的数据结构(Series, DataFrame)