1. 程式人生 > >Pandas的三個基本數據結構Series,DataFrame,Index

Pandas的三個基本數據結構Series,DataFrame,Index

通過 括號 填充 有序集合 列名 基本數據結構 import 並集 and

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)數據結構的許多習慣用法,包括並集,交集,差集

Pandas的三個基本數據結構Series,DataFrame,Index