pandas入门之Series、DataFrame和Index

 

(一)Series

可以把 Pandas 的 Series 对象看成一种特殊的 Python 字典 “{ }”, 将类型键映射到类型值.(显式索引)。

data.values , data.index

1 data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd'])  #创建pd.Series对象,**这是由字典列表创建**
2 
3 #data:  
4 a 0.25
5 b 0.50
6 c 0.75
7 d 1.00

 

Series对象支持切片操作。

1 data["a":"v"]
2 
3 #Output:
4 a    1
5 b    2
6 v    3

 

(二)Index
0 : 类似数组一样的操作去获取数值,也可以切片。
1:不能通过index索引改变数组的数值。
2 : 可以实现一些pandas对象的集合操作,并、交、差。
3:注意显式索引做切片时包括最后一个索引,隐式索引切片不包括最后一个索引。

索引器-indexer:可以暴露切片接口的属性,避免混乱, loc , iloc , ix

(三)DataFrame

DataFrame 可以看作一种通用的 NumPy 二维数组size(a,b),相当于多个Series组成一个Series是一个列。 它的行与列都可以通过索引获取。
pd.DataFrame().index #索引标签,输出相当于EXCEL最左侧一列。
pd.DataFrame().collums #返回一个存放列标签的index对象。
缺失值会用NaN表示:Not a number.

创建pd.DataFrame:几种方法
0 : 通过单个 Series 对象创建
1 : 字典列表
2:通过Series对象字典
3:通过numpy二维数组创建
4 : 通过 NumPy 结构化数组创建

 1 pd.DataFrame(population, columns=['population'])     #way0
 2 #Output:                               population
 3                  California           38332521
 4                  Florida              19552860
 5                  Illinois             12882135
 6                  New York             19651127
 7                  Texas                26448193
 8 
 9 
10 data = [{'a': i, 'b': 2 * i}for i in range(3)]        #way1
11 pd.DataFrame(data)
12 #Out[24]:     
13                           a b
14             0 0 0
15             1 1 2
16             2 2 4 
17              
18 
19 pd.DataFrame({'population': population,'area': area})    #way2  
20 #Out[24]:              
21                            area population
22                        California 423967 38332521
23             Florida   170312 19552860
24             Illinois  149995 12882135
25             New York  141297 19651127
26             Texas     695662 26448193
27 
28 
29 pd.DataFrame(np.random.rand(3, 2),columns=['foo', 'bar'], index=['a', 'b', 'c'])  #way3  
30 #Out[27]:    
31                     foo      bar
32         a 0.865257 0.213169
33         b 0.442759 0.108267
34         c 0.047110 0.905718
35 
36 
37 A = np.zeros(3, dtype=[('A', 'i8'), ('B', 'f8')])          #way4
38 pd.DataFrame(A)
39 #Out[29]: 
40                   A   B
41         0  0  0.0
42         1  0  0.0
43         2  0  0.0                            

 

posted @ 2018-10-19 00:23  Parallax  阅读(223)  评论(0编辑  收藏  举报