Pandas的三个基本数据结构Series,DataFrame,Index

1.Series

  Pandas的Series对象是一个带索引数据构成的一维数组

  1)用一个数组创建Series对象

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: data = pd.Series([0.25,0.5,0.75,1.0])

In [4]: data
Out[4]: 
0    0.25
1    0.50
2    0.75
3    1.00
dtype: float64

  2)通过values和index属性获取数据

# values属性返回的结果与Numpy数组类似
In [5]: data.values
Out[5]: array([0.25, 0.5 , 0.75, 1.  ])

# index属性返回的结果是一个类型为pd.index的类数组对象
In [6]: data.index
Out[6]: RangeIndex(start=0, stop=4, step=1)

  3)和Numpy数组一样,数据可以通过Python中的括号索引标签获取

In [7]: data[1]
Out[7]: 0.5

In [8]: data[1:3]
Out[8]: 
1    0.50
2    0.75
dtype: float64

  4)对于Series对象的index,默认值为整数序列

In [9]: pd.Series([2,4,6])
Out[9]: 
0    2
1    4
2    6
dtype: int64

  5)data还可以是一个标量,创建Series对象时会重复填充到每个索引上

In [10]: pd.Series(5, index=[100, 200, 300])
Out[10]: 
100    5
200    5
300    5
dtype: int64

 2.DataFrame

  理解:如果将Series类比为带灵活索引的一维数组,那么DataFrame就可以看作是一种既有灵活的行索引,又有灵活列名的二维数组,也可以把DataFrame看成是有序列排列的若干Series对象,这里的'排列'指的是它们拥有共同的索引

  创建DataFrame:

  *通过单个Series对象创建

  *通过字典列表创建

In [13]: data = [{'a':i,'b':2 * i} for i in range(3)]

In [14]: pd.DataFrame(data)
Out[14]: 
   a  b
0  0  0
1  1  2
2  2  4

  *通过Numpy二维数组创建

In [17]: pd.DataFrame(np.random.rand(3,2),columns=['foo','bar'],index=['a','b','c'])
Out[17]: 
        foo       bar
a  0.849243  0.390653
b  0.411107  0.005731
c  0.517257  0.545708

3.Index

  理解:可以将它看作一个不可变数组或有序集合(实际上是一个多集,因为Index对象可能会包含重复值)

  Index对象遵循Python标准库的集合(set)数据结构的许多习惯用法,包括并集,交集,差集

原文地址:https://www.cnblogs.com/songxiaohua/p/9445087.html