pandas入门

来源:互联网 发布:捷联惯导速度算法 编辑:程序博客网 时间:2024/06/05 06:56

《Python for Data Analysis》

from pandas import Series, DataFrameimport pandas as pd

Series

由一组数据以及与之相关的数据标签,Series的字符串表现形式为:索引在左边,值在右边。如果没有指定索引,会自动创建一个0到N-1的整数型索引。

属性: .values.index

In [1]: from pandas import Series, DataFrameIn [2]: import pandas as pdIn [3]: obj = Series([4,6,-3,8])In [4]: objOut[4]:0    41    62   -33    8dtype: int64In [5]: obj.indexOut[5]: RangeIndex(start=0, stop=4, step=1)In [6]: obj.valuesOut[6]: array([ 4,  6, -3,  8], dtype=int64)

Numpy数组运算会保留索引与值之间的链接,可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。

可以直接通过字典创建Series:
obj = Series(dict)

Series在算术运算中会自动对齐不同索引的数据。

Series对象本身及其索引都有一个name属性。

Series的索引可以通过赋值的方式就地修改。

DataFrame

DataFrame是一个表格类型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。

构建DataFrame的方法有很多,最常用的一种是直接传入一个由等长列表或者Numpy数组组成的字典。DataFrame会自动加上索引,且全部会有序排列。
frame = DataFrame(dict)

可以指定列序列
DataFrame(dict, columns=['year', 'state']

DataFrame的列可以获取为一个Series:——frame['year']等效于frame.year

可以通过位置或名称获取行,比如用索引字段ix——frame.ix['three']

为不存在的列赋值会创建出新列。关键字del用于删除列

注意:通过索引方式返回的列只是相应数据的++视图++,并不是副本!!

In [1]: from pandas import Series, DataFrameIn [2]: import numpy as npIn [3]: data = DataFrame(np.arange(16).reshape((4,4)),   ...:                  index=['a','b','c','d'],   ...:                  columns=['one','two','three','four'])In [4]: dataOut[4]:   one  two  three  foura    0    1      2     3b    4    5      6     7c    8    9     10    11d   12   13     14    15In [5]: data['two']Out[5]:a     1b     5c     9d    13Name: two, dtype: int32In [6]: data[['three','one']]Out[6]:   three  onea      2    0b      6    4c     10    8d     14   12In [7]: data[:2]Out[7]:   one  two  three  foura    0    1      2     3b    4    5      6     7In [8]: data[data['three'] > 5]Out[8]:   one  two  three  fourb    4    5      6     7c    8    9     10    11d   12   13     14    15In [9]: data < 5Out[9]:     one    two  three   foura   True   True   True   Trueb   True  False  False  Falsec  False  False  False  Falsed  False  False  False  FalseIn [10]: data[data < 5] = 0In [11]: dataOut[11]:   one  two  three  foura    0    0      0     0b    0    5      6     7c    8    9     10    11d   12   13     14    15
0 0
原创粉丝点击