WHCSRL 技术网

学习笔记之第3章 Pandas数据结构(三)

第3章 Pandas数据结构

  • 在使用它们之前我们要先将其导入,导入方法在Python基础知识部分讲过,一个程序中只需要导入一次即可。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
  • 1
  • 2
  • 3
  • 为了在引用模块时书写方便,上面的代码中用as分别给这几个模块起了别名。所以在本书中见到 pd 就是代表 Pandas,见到 np 就是代表 NumPy,见到 plt 就是代表matplotlib.pyplot

3.1 Series数据结构

3.1.1 Series是什么

  • Series是一种类似于一维数组的对象,由一组数据及一组与之相关的数据标签(即索引)组成。

3.1.2 创建一个Series

  • 创建一个Series利用的方法是pd.Series(),通过给Series()方法传入不同的对象即可实现。
#注意Series需要大写
s1 = pd.Series(["a","b","c"])
s1
  • 1
  • 2
  • 3
  • 输出结果
0    a
1    b
2    c
dtype: object
  • 1
  • 2
  • 3
  • 4
  • 如果只是传入一个列表不指定数据标签,那么Series会默认使用从0开始的数做数据标签,上面的0、1、2、3就是默认的数据标签。
s2 = pd.Series(["a","b","c"],index=[1,2,3])
s2
  • 1
  • 2
  • 输出结果
1    a
2    b
3    c
dtype: object
  • 1
  • 2
  • 3
  • 4
  • 也可以将数据与数据标签以key:value(字典)的形式传入,这样字典的key值就是数据标签,value就是数据值。
s3 = pd.Series({"a":1,"b":2,"c":3})
s3
  • 1
  • 2
  • 输出结果
a    1
b    2
c    3
dtype: int64
  • 1
  • 2
  • 3
  • 4

3.1.3 利用index方法获取Series的索引

  • 获取一组数据的索引是比较常见的需求,直接利用 index 方法就可以获取 Series的索引值,代码如下所示。
print(s1.index)
print(s3.index)
  • 1
  • 2
  • 输出结果
RangeIndex(start=0, stop=3, step=1)
Index(['a', 'b', 'c'], dtype='object')
  • 1
  • 2

3.1.4 利用values方法获取Series的值

print(s1.values)
print(s3.values)
  • 1
  • 2
  • 输出结果
['a' 'b' 'c']
[1 2 3]
  • 1
  • 2

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
  • 1
  • 2
  • 输出结果
    0
0	a
1	b
2	c
3	d
  • 1
  • 2
  • 3
  • 4
  • 5
  • 只传入一个单一列表时,该列表的值会显示成一列,且行和列都是从0开始的默认索引。
df2 = pd.DataFrame([["a","A"],["b","B"],["c","C"],["d","D"]])
df2
  • 1
  • 2
  • 输出结果
	0	1
0	a	A
1	b	B
2	c	C
3	d	D
  • 1
  • 2
  • 3
  • 4
  • 5
  • 当传入一个嵌套列表时,会根据嵌套列表数显示成多列数据,行、列索引同样是从0开始的默认索引。列表里面嵌套的列表也可以换成元组。
df3 = pd.DataFrame([("a","A"),("b","B"),("c","C"),("d","D")])
df3
  • 1
  • 2
  • 输出结果
	0	1
0	a	A
1	b	B
2	c	C
3	d	D
  • 1
  • 2
  • 3
  • 4
  • 5
df4 = pd.DataFrame([("a","A"),("b","B"),("c","C"),("d","D")]
                  ,columns = ["小写","大写"]
                  ,index = ["一","二","三","四"])
df4
  • 1
  • 2
  • 3
  • 4
  • 输出结果
	小写	大写
一	a	A
二	b	B
三	c	C
四	d	D
  • 1
  • 2
  • 3
  • 4
  • 5

3.2.3 获取DataFrame的行、列索引

#利用columns方法获取DataFrame的列索引。
print(df4.columns)

#利用index方法获取DataFrame的行索引。
print(df4.index)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 输出结果
Index(['小写', '大写'], dtype='object')
Index(['一', '二', '三', '四'], dtype='object')
  • 1
  • 2

3.2.4 获取DataFrame的值

  • 获取DataFrame的值就是获取DataFrame中的某些行或列,有关行、列的选择在第6章会有详细讲解。
推荐阅读