第3章 Pandas数据结构
在使用它们之前我们要先将其导入,导入方法在Python基础知识部分讲过,一个程序中只需要导入一次即可。
import numpy as np
import pandas as pd
import matplotlib. pyplot as plt
为了在引用模块时书写方便,上面的代码中用as分别给这几个模块起了别名。所以在本书中见到 pd 就是代表 Pandas,见到 np 就是代表 NumPy,见到 plt 就是代表matplotlib.pyplot
3.1 Series数据结构
3.1.1 Series是什么
Series是一种类似于一维数组的对象,由一组数据及一组与之相关的数据标签(即索引)组成。
3.1.2 创建一个Series
创建一个Series利用的方法是pd.Series(),通过给Series()方法传入不同的对象即可实现。
s1 = pd. Series( [ "a" , "b" , "c" ] )
s1
0 a
1 b
2 c
dtype: object
如果只是传入一个列表不指定数据标签,那么Series会默认使用从0开始的数做数据标签,上面的0、1、2、3就是默认的数据标签。
s2 = pd. Series( [ "a" , "b" , "c" ] , index= [ 1 , 2 , 3 ] )
s2
1 a
2 b
3 c
dtype: object
也可以将数据与数据标签以key:value(字典)的形式传入,这样字典的key值就是数据标签,value就是数据值。
s3 = pd. Series( { "a" : 1 , "b" : 2 , "c" : 3 } )
s3
a 1
b 2
c 3
dtype: int64
3.1.3 利用index方法获取Series的索引
获取一组数据的索引是比较常见的需求,直接利用 index 方法就可以获取 Series的索引值,代码如下所示。
print ( s1. index)
print ( s3. index)
RangeIndex( start= 0 , stop= 3 , step= 1 )
Index( [ 'a' , 'b' , 'c' ] , dtype= 'object' )
3.1.4 利用values方法获取Series的值
print ( s1. values)
print ( s3. values)
[ 'a' 'b' 'c' ]
[ 1 2 3 ]
3.2 DataFrame 表格型数据结构
3.2.1 DataFrame是什么
Series是由一组数据与一组索引(行索引)组成的数据结构,而DataFrame是由一组数据与一对索引(行索引和列索引)组成的表格型数据结构。 之所以叫表格型数据结构,是因为DataFrame的数据形式和Excel的数据存储形式很相近,接下来的章节主要围绕DataFrame这种表格型数据结构展开。下面就是一个简单的DataFrame数据结构。
3.2.2 创建一个DataFrame
创建DataFrame使用的方法是pd.DataFrame(),通过给DataFrame()方法传入不同的对象即可实现。
df1 = pd. DataFrame( [ "a" , "b" , "c" , "d" ] )
df1
0
0 a
1 b
2 c
3 d
只传入一个单一列表时,该列表的值会显示成一列,且行和列都是从0开始的默认索引。
df2 = pd. DataFrame( [ [ "a" , "A" ] , [ "b" , "B" ] , [ "c" , "C" ] , [ "d" , "D" ] ] )
df2
0 1
0 a A
1 b B
2 c C
3 d D
当传入一个嵌套列表时,会根据嵌套列表数显示成多列数据,行、列索引同样是从0开始的默认索引。列表里面嵌套的列表也可以换成元组。
df3 = pd. DataFrame( [ ( "a" , "A" ) , ( "b" , "B" ) , ( "c" , "C" ) , ( "d" , "D" ) ] )
df3
0 1
0 a A
1 b B
2 c C
3 d D
df4 = pd. DataFrame( [ ( "a" , "A" ) , ( "b" , "B" ) , ( "c" , "C" ) , ( "d" , "D" ) ]
, columns = [ "小写" , "大写" ]
, index = [ "一" , "二" , "三" , "四" ] )
df4
小写 大写
一 a A
二 b B
三 c C
四 d D
3.2.3 获取DataFrame的行、列索引
print ( df4. columns)
print ( df4. index)
Index( [ '小写' , '大写' ] , dtype= 'object' )
Index( [ '一' , '二' , '三' , '四' ] , dtype= 'object' )
3.2.4 获取DataFrame的值
获取DataFrame的值就是获取DataFrame中的某些行或列,有关行、列的选择在第6章会有详细讲解。