三种常用方法创建Series索引
通过列表创建Series索引
通过numpy创建的数组来创建Series索引
通过字典(无序)创建Series索引
索引值默认从0开始(0索引)。
import pandas as pd
import numpy as np
a1 = pd.Series([1,2,3,4,5])
a1 #生成的结果左边是索引(默认的索引),对应右边的元素值,最下面是值的数据类型
0 1
1 2
2 3
3 4
4 5
dtype: int64
type(a1) #类型
pandas.core.series.Series
index指定索引名:
注意:指定的索引数量必须和列表元素数量一致,否则报错。
#index指定索引名
a2 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e']) #指定的索引数量必须和列表元素数量一致,否则报错
a2
a 1
b 2
c 3
d 4
e 5
dtype: int64
b1 = pd.Series(np.arange(1,6))
b1 #生成的结果左边是索引(默认的索引),对应右边的元素值
0 1
1 2
2 3
3 4
4 5
dtype: int32
type(b1) #类型
pandas.core.series.Series
指定索引:
注意:指定的索引数量必须和列表元素数量一致,否则报错。
#index指定索引名
b1 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e']) #指定的索引数量必须和列表元素数量一致,否则报错
b1
a 1
b 2
c 3
d 4
e 5
dtype: int64
dict1 = {'name':'李宁','age':'12','gender':'男'}
print(dict1) #字典是无序的,每次输出顺序可能不一样
print("="*20)
c1 = pd.Series(dict1)
print(c1)
{'name': '李宁', 'age': '12', 'gender': '男'}
====================
name 李宁
age 12
gender 男
dtype: object
可以指定索引名字和顺序:
#指定字典索引
c2 = pd.Series(dict,index=['gender','name','age'])
c2
gender 男
name 李宁
age 12
dtype: object
注意:指定的索引数量可以不等于字典的键值对数量,多余的索引则返回NAN
c3 = pd.Series(dict,index=['gender','name','age','weight'])
c3
gender 男
name 李宁
age 12
weight NaN
dtype: object
注意:小于则返回指定的索引,未指定不返回
c4 = pd.Series(dict,index=['gender','name'])
c4
gender 男
name 李宁
dtype: object
d1 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e']) #指定的索引数量必须和列表元素数量一致,否则报错
d1
a 1
b 2
c 3
d 4
e 5
dtype: int64
d1.values #获取数据,返回一个数组
array([1, 2, 3, 4, 5], dtype=int64)
d1.index #获取索引
Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
c1:
dict1 = {'name':'李宁','age':'12','gender':'男'}
c1 = pd.Series(dict1)
print(c1)
name 李宁
age 12
gender 男
dtype: object
下标取值
print(c1[0]) #取一个值
print("="*20)
print(c1[[0,1]]) #取多个值
print("="*20)
print(c1[['name','age']]) #通过指定索引名字取多个值
李宁
====================
name 李宁
age 12
dtype: object
====================
name 李宁
age 12
dtype: object
注意:下标切片,取左不取右。标签切片,左右皆取。
#切片
print(c1[0:2]) #下标切片,取左不取右
print("="*20)
print(c1['name':'gender']) #通过指定的所有名字切片(标签切片),左右都包括
name 李宁
age 12
dtype: object
====================
name 李宁
age 12
gender 男
dtype: object
a1:
a1 = pd.Series([1,2,3,4,5])
a1 #生成的结果左边是索引(默认的索引),对应右边的元素值
0 1
1 2
2 3
3 4
4 5
dtype: int64
布尔索引:
print(a1[a1>3]) #返回a1中大于3的值
3 4
4 5
dtype: int64
索引与数据的对应关系不会被运算结果影响,就是说运算不会改变原Series索引的对应关系和值。
print(a1)
print("="*20)
print(a1[a1>3]) #返回a1中大于3的值
print("="*20)
print(a1*2)
print("="*20) #返回a1中大于3的值,还是不变,因为原Series索引没变
print(a1[a1>3])
0 1
1 2
2 3
3 4
4 5
dtype: int64
====================
3 4
4 5
dtype: int64
====================
0 2
1 4
2 6
3 8
4 10
dtype: int64
====================
3 4
4 5
dtype: int64
c2:
c2 = pd.Series(dict,index=['gender','name','age'])
c2
gender 男
name 李宁
age 12
dtype: object
isnull():无缺失值(非NAN)返回False,否则返回True
c2.isnull() #无缺失值(非NAN)返回False,否则返回True
gender False
name False
age False
dtype: bool
notnull():无缺失值(非NAN)返回True,否则返回False
c2.notnull() #无缺失值(非NAN)返回True,否则返回False,与isnull结果相反
gender True
name True
age True
dtype: bool
c3:
c3 = pd.Series(dict,index=['gender','name','age','weight'])
c3
print(c3.isnull())
print(c3.notnull())
gender False
name False
age False
weight True
dtype: bool
gender True
name True
age True
weight False
dtype: bool
#name属性
d1 = pd.Series([1,2,3,4,5])
print(d1)
print("="*20)
d1.name = 'temp' #对象名
d1.index.name = 'student' #对象索引名
print(d1)
0 1
1 2
2 3
3 4
4 5
dtype: int64
====================
student
0 1
1 2
2 3
3 4
4 5
Name: temp, dtype: int64
不指定参数n则输出前5行。
#head(n) 获取索引的前n行
d2 = pd.Series([1,2,3,4,5,6,7])
print(d2)
print("="*20)
print(d2.head()) #默认打印前五行
print("="*20)
print(d2.head(6)) #指定打印前六行
print("="*20)
print(d2.head(3)) #指定打印前三行
0 1
1 2
2 3
3 4
4 5
5 6
6 7
dtype: int64
====================
0 1
1 2
2 3
3 4
4 5
dtype: int64
====================
0 1
1 2
2 3
3 4
4 5
5 6
dtype: int64
====================
0 1
1 2
2 3
dtype: int64
不指定参数n则输出后5行。
#tail(n) 获取索引的后n行
d3 = pd.Series([1,2,3,4,5,6,7,8,9,10])
print(d3)
print("="*20)
print(d3.tail()) #默认打印后五行
print("="*20)
print(d3.tail(6)) #指定打印后六行
print("="*20)
print(d3.tail(3)) #指定打印后三行
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
dtype: int64
====================
5 6
6 7
7 8
8 9
9 10
dtype: int64
====================
4 5
5 6
6 7
7 8
8 9
9 10
dtype: int64
====================
7 8
8 9
9 10
dtype: int64