文章目录
1. 认识Pandas中的数据结构
上图为通过Pandas读取数据集展示出来的数据,以此为例来讲解Pandas的核心概念,以及这些概念的层级关系:
- DataFrame
- Series
- 索引列
- 索引名、索引值
- 索引下标、行号
- 数据列
- 列名
- 列下标
- 列值,具体的数据
其中最核心
的就是Pandas中的两个数据结构:DataFrame
和Series
。
- 索引列
- Series
2. Series对象
- Series也是Pandas中的最基本的数据结构对象,是DataFrame的列对象或者行对象,Series本身也具有行索引。
- Series是一种类似于一维数组的对象,由下面两个部分组成:
- values:一组数据(numpy.ndarray类型)
- index:相关的数据行索引标签;如果没有为数据指定索引,会自动创建一个0到N-1(N为数据的长度)的整数型索引。
2.1 创建Series对象
2.1.1 语法
-
numpy.array(object, dtype=None, ndmin=0)
- object:这是必填参数,表示要转换为数组的数据,可以是多种数据类型,如列表(包括嵌套列表)、元组、其他数组等。例如:np.array([1, 2, 3]),这里的[1, 2, 3]就是作为object的列表;或者np.array((4, 5, 6)),这里的(4, 5, 6)是作为object的元组。
- ndmin:指定创建数组的最小维度。例如,np.array([1, 2, 3], ndmin = 2)会创建一个二维数组,即使输入的数据看起来像是一维的。
-
class pandas.Series(data=None, index=None)
-
data参数
- 含义:data是Series构造函数中最主要的参数,它用来指定要存储在Series中的数据。
- 数据类型:data可以是多种数据类型,例如:
- Python 列表(list)或元组(tuple),如pd.Series([1, 2, 3])或pd.Series((4, 5, 6))。
- NumPy 数组,例如pd.Series(np.array([7, 8, 9]))。
- 标量值(单个数值、字符串等),如pd.Series(5, index=[0, 1, 2]),这将创建一个包含相同标量值的Series。
- 字典(dictionary),字典的键将作为Series的索引(如果未另外指定索引),字典的值作为Series的数据,例如pd.Series({‘a’: 10, ‘b’: 20})。
-
index参数
- 含义:index参数用于指定Series的索引,它定义了数据的标签。
- 数据类型:
- 可以是一个Index对象(这是pandas中专门用于表示索引的数据结构),例如pd.Index([‘x’, ‘y’, ‘z’])可以作为索引传递给Series。
- 也可以是其他类似序列的数据类型,如列表、元组等,例如pd.Series([100, 200, 300], index=[‘m’, ‘n’, ‘o’])。
- 索引长度要求:index的长度必须与data的长度相同(当data是列表、数组等有序数据结构时)。如果data是标量,index的长度决定了Series的长度。例如,data为标量值5,index为[0, 1, 2],则会生成一个包含三个元素值都为5的Series。
-
2.1.2 通过numpy.ndarray数组来创建
2.1.2.1 自动生成索引
import numpy as np
import pandas as pd
# 创建numpy.ndarray对象
n1 = np.array([1,2,3])
print(n1)
print(type(n1))
# 创建Series对象
s1 = pd.Series(data=n1)
print(s1)
print(type(s1))
运行结果:
- 上面的结果中,左边显示的0,1是Series的索引,默认为0,1,2,3…,下边的dtype:int64就是该Series对象中值的数据类型。
2.1.2.2 指定索引
import numpy as np
import pandas as pd
# 创建numpy.ndarray对象
n1 = np.array([1,2,3])
# 创建Series对象,同时指定索引
s1 = pd.Series(data=n1,index=['A','B','C'])
print(s1)