Series数据结构:
Series是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数Python对象等),轴标签统称为索引
import numpy as np
import pandas as pd
ar = np.random.rand(5) #生成五个0-1的随机数的数组
s = pd.Series(ar)
print(ar)
print(s)
print(type(s))
print("------")
print(s.index) #索引,从0开始,5停止,步长为1或者这样写:print(list(s.index))
print(s.values,"\n----") #s是有值的
index查看series索引,类型为rangeindex
values查看series值,类型是ndarray
核心:series相比于ndarray,是一个自带索引index的数组-->一维数组+对应索引
所以当只看series的值得时候,就是一个ndarray
series和ndarray较相识,所以切片功能差别不大
series和dict相比,series更像一个有顺序的字典(dict本身不存在顺序),其索引原理与字典相似(一个用key,一个用index)
import numpy as np
import pandas as pd
#Series 创建方法之一:由字典创建,字典的key就是index,values就是values
dic = {"a":1,"b":2,"c":3,4:3,5:10}
s = pd.Series(dic)
print(s)
#Series 通过一维数组创建
arr = np.random.rand(10)
s = pd.Series(arr,index=list("abcdefghij")) #通过index可以改变索引的key
print(s)
pandas数据结构series:索引
import numpy as np
import pandas as pd
#下标索引
s = pd.Series(np.random.rand(10))
print(s)
print(s[5],type(s[6]),s[7].dtype)
#print(s[-1]) 和列表不同的是这里索引为-1会报错
#标签索引
s = pd.Series(np.random.rand(5),index=['a','b','c','d','e'])
print(s)
print(s['a'],type(s['a']),s['a'].dtype)
#方法类似下标索引,用[]表示,内写上index,注意index是字符串
print(s[['b','a','c']])
#如果需要选择多个标签的值,用[[]]来表示(相当于[]中包含一个列表)
#多标签索引结果是新的数据
切片:
import numpy as np
import pandas as pd
s1 = pd.Series(np.random.rand(5))
s2 = pd.Series(np.random.rand(5),index=['a','b','c','d','e'])
print(s1)
print(s2)
print(s1[1:4],s1[4]) #下标
print(s2['a':'e'],s2['c'])
print(s2[0:3],s2[3])
print('------')
#注意:用index做切片是末端包含
print(s2[:-1])
print(s2[::2])
#下标索引做切片,和list写法一样