0 ,Series 索引的实质 :
dataframe 的列名
1 ,pd 两种数据结构 :Series + Dataframe
Series : 序列,1 维数组 1 ,sr 可以是 : 行 2 ,sr 也可以是 : 列Dataframe : 2 维表,由一堆 Series 组成,有行索引,列索引
2 ,Series 是什么: 一行或者一列
Series 是什么 : df 的一个切片Series 代表 : 一行或者一列
3 ,Series 构成 : data + index
data : 数据index :索引 1 ,索引值必须是唯一的和散列的。 2 ,与数据的长度相同。 3 ,默认 : np.arange(n) 如果没有索引被传递。dtype : 输出的数据类型 如果没有,将推断数据类型
4 ,创建 sr : 列表创建 pd.Series(li01,li02)
创建 : 数据 + 索引 :
import numpy
as np
import pandas
as pd
if __name__
== '__main__':
li01
= ["a","b","c","d"]
li02
= [1,2,3,4]
sr01
= pd
.Series
(li01
,li02
)
print(sr01
)
=====================
1 a
2 b
3 c
4 d
索引是否可以重复 : 可以,不报错,但是不建议重复
1 a
1 b
3 c
4 d
实验结果 :
if __name__
== '__main__':
li01
= ["a","b","c","d"]
li02
= [1,1,3,4]
sr01
= pd
.Series
(li01
,li02
)
res01
= sr01
[1]
res02
= sr01
[3]
print(res01
)
print(res02
)
print(type(res01
))
print(type(res02
))
=================================
1 a
1 b
dtype
: object ( 注意:这里的 Object 指的是字符串;类型
)
c
<class 'pandas.core.series.Series'>
<class 'str'>
5 ,如果索引重复会怎么样 : 得不到元素,得到子 sr
后果 : 取数据的时候不能去到唯一的元素索引唯一 : 取到一个元素索引不唯一 : 取到一个子 Series
6 ,sr 取值 : 一个 sr01[1]
原理 : 根据索引取到数据代码 :
if __name__
== '__main__':
li01
= ["a","b","c","d"]
li02
= [1,2,3,4]
sr01
= pd
.Series
(li01
,li02
)
res01
= sr01
[1]
print(sr01
)
print(res01
)
========================
1 a
2 b
3 c
4 d
dtype
: object
a
7 ,sr 取值 : 多个 sr01[1:3]
代码 :
if __name__
== '__main__':
li01
= ["a","b","c","d"]
li02
= [3,4,5,6]
sr01
= pd
.Series
(li01
,li02
)
res01
= sr01
[1:3]
print(sr01
)
print(res01
)
==============================
3 a
4 b
5 c
6 d
dtype
: object
4 b
5 c
dtype
: object
8 ,Series 索引取值总结 : 单个多个区别
Series 有默认索引 : 从 0 开始选一个元素 : 用的是我们给的索引选多个元素 : 用的是默认索引
9 ,创建 Series : 使用默认索引 pd.Series(li01)
思路 : 直接存数据,到 Series 中代码 :
if __name__
== '__main__':
li01
= ["a","b","c","d"]
sr01
= pd
.Series
(li01
)
print(sr01
)
===========================
0 a
1 b
2 c
3 d