1.series介绍
series是一种类似于一维数组的对象,由两部分组成
- value:数据,ndarray类型
- index:数据索引标签
2.series的创建
- 由pd.Series()直接创建
- index:索引值
- name:series的名字
import numpy as np
import pandas as pd
n = pd.Series([1,2,3],index=['A','B','C'],name='test')
print('n:\n',n)
- 由列表或者numpy数组创建:默认索引为0到n-1的整数型索引
import numpy as np
import pandas as pd
#列表创建
x = [4,5,8,12,34]
s = pd.Series(x)
print('s:\n',s)
#numpy创建
n = np.arange(0,10,2)
print('n:',n)
s = pd.Series(n)
print('s:\n',s)
#查看值和索引
print('s的值:',s.values)
print('s的索引:',s.index)
#修改索引
s.index = ['a','b','c','d','e']
print('s:\n',s)
s.index = list('ABCDE')
print('s:\n',s)
#通过索引获取值
value = s.E
print('value:',value)
#通过索引修改值
s['E'] = 100
print('s:\n',s)
- 由字典创建
import numpy as np
import pandas as pd
d = {
'a':11,
'b':34,
'c':56,
'd':78
}
s = pd.Series(d)
print('s:\n',s)
3.series的索引
- 显示索引:使用索引名
- 使用index中的元素作为索引值
- 使用.loc[]
import numpy as np
import pandas as pd
s = pd.Series({'python':100,'java':200,'c++':300})
print('s:\n',s)
#使用索引名
data = s['python'] #结果为一个数值
print('data:',data)
data = s[['python','java']] #结果为一个Series
print('data:\n',data)
#使用.loc[]
data = s.loc[['c++','python']]
print('data:\n',data)
- 隐式索引:使用数字下标
- 使用整数作为索引值
- 使用.iloc[]
import numpy as np
import pandas as pd
s = pd.Series({'python':100,'java':200,'c++':300})
print('s:\n',s)
#使用索引下标
data = s[0] #结果为一个数值
print('data:',data)
data = s[[0,2]] #结果为一个Series
print('data:\n',data)
#使用.iloc[]
data = s.iloc[[0,2]]
print('data:\n',data)
4.series的切片
import numpy as np
import pandas as pd
s = pd.Series({
'语文':100,
'数学':140,
'英语':130,
'物理':110,
'化学':98,
'生物':80,
})
print('s:\n',s)
#隐式切片:左闭右开
data = s[1:4]
print('data:\n',data)
#显式切片:全闭区间
data = s['数学':'生物']
print('data:\n',data)
5.series的基本属性
import numpy as np
import pandas as pd
s = pd.Series({
'语文':100,
'数学':140,
'英语':130,
'物理':110,
'化学':98,
'生物':80,
},name='成绩')
print('s:\n',s)
#形状
shape = s.shape
print('shape:',shape)
#元素个数
size = s.size
print('size:',size)
#索引
index = s.index
print('index:',index)
#值
value = s.values
print('value:',value)
#名字
name = s.name
print('name:',name)
6.series的基本方法
- 查看数据
- head()查看前几条数据,默认5条
- tail()查看后几条数据,默认5条
import numpy as np
import pandas as pd
s = pd.Series({
'语文':100,
'数学':140,
'英语':130,
'物理':110,
'化学':98,
'生物':80,
},name='成绩')
print('s:\n',s)
head = s.head(2)
print('head:\n',head)
tail = s.tail(2)
print('tail:\n',tail)
- 检测缺失数据
- pd.isnull():判断是否为空
- pd.notnull():判断是否不为空
- isnull():判断是否为空
- notnull():判断是否不为空
import numpy as np
import pandas as pd
s = pd.Series(['dog','cat','pig',np.nan])
print('s:\n',s)
print('isnull判断:\n',s.isnull())
print('pd.isnull判断:\n',pd.isnull(s))
print('notnull判断:\n',s.notnull())
print('pd.notnull判断:\n',pd.notnull(s))
- 使用bool值索引过滤数据
import pandas as pd
s = pd.Series(['dog','cat','pig',np.nan])
print('s:\n',s)
mid1 = s.isnull()
data1 = s[~mid1] # ~:取反符号
print('data1:\n',data1)
mid2 = s.notnull()
data2 = s[mid2]
print('data2:\n',data2)
7.series的运算
- series与数的运算,适用于numpy的数组运算也适用于series
import numpy as np
import pandas as pd
s = pd.Series(np.random.randint(10,100,size=10))
print('s:\n',s)
#基本算数运算
print('加法\n',s + 10)
print('减法\n',s - 10)
print('乘法\n',s * 10)
print('除法\n',s / 10)
print('整除\n',s // 10)
print('幂运算\n',s ** 2)
print('取余\n',s % 10)
- series之间的运算
- 在运算中对应索引相运算
- 如果索引不对应,则补齐为NaN
- 如果不想用NaN补齐,可以使用.add()函数,设置一个默认值
- 没有广播机制
import numpy as np
import pandas as pd
s1 = pd.Series(np.random.randint(10,100,size=3))
s2 = pd.Series(np.random.randint(10,100,size=4))
print('s1:\n',s1)
print('s2:\n',s2)
#基本算数运算
print('加法\n',s1 + s2)
#使用.add()方法
print('结果\n',s1.add(s2,fill_value=0))
知识点为听课总结笔记,课程为B站“千锋教育Pandas数据分析从入门到实战,零基础小白保姆级Python数据分析教程”:001_Pandas_Pandas介绍_哔哩哔哩_bilibili