panda Series 一维数据类型的学习
# -*- coding: utf-8 -*-
"""
Created on Thu Aurgust 4 15:20:27 2021
@author: 14096
"""
import pandas as pd
d = pd.Series(range(20)) ##第一列是索引,第二列是值
d.cumsum() #计算前N项的累加和
##Series类型 (索引与数据之间一一对应)(一维带标签的数组)
a = pd.Series([9,8,7,6])
a = pd.Series([9,8,7,6],index= ["a","b","c","d"])
###从标量值创建
s = pd.Series(25,index=["a","b","c"])
###从字典类型创建
d= pd.Series({"a":9,"b":8,"c":7})
e = pd.Series({"a":9,"b":8,"c":7},index=["c","a","b","d"]) ###index从字典中选择操作,改变顺序
#从ndarray创建
import numpy as np
n = pd.Series(np.arange(5))
m = pd.Series(np.arange(5),index=np.arange(9,4,-1))
###基本操作
# (类似于numpy数据类型的操作)
b = pd.Series([9,8,7,6],index= ["a","b","c","d"])
b.index
b.values ##输出的是numpy类型
b["b"] #自动索引和自定义索引并存
b[1]
b[["c","d",0]] ##两种索引方式混合使用就不行,一起用会当作自定义索引
b[["c","d","a"]] #可以
###Numpy中运算和操作可用于Series类型
b[:3]
'''
与b[3]相比,切片切出的是几个数的时候,那么输出的结果还是Series类型,还是有索引,而
切出来一个数时,就只有数没有索引了
'''
b = b[b > b.median()]
np.exp(b)
##类似字典类型的操作
b = pd.Series([9,8,7,6],index= ["a","b","c","d"])
"c" in b #返回 True, 只会自动查询b的自定义索引中是否有"c"
0 in b ##返回False
b.get("a",100) #字典类型操作的一个函数,如果索引中有对应的索引a,那么返回a对应的值,如果不存在这个索引,则返回100
b.get("f",100)
##Series类型的对齐操作
a = pd.Series([9,8,7,6],index= ["a","b","c","d"])
b = pd.Series([1,2,3],index= ["c","d","e"])
a + b ##在运算中会自动对齐不同索引的数据
##可以给Series对象和其index加上一个名字
b.name = "Series对象"
b.index.name = "索引"
###Series类型的修改
#Series对象可以随时修改并马上生效
b = pd.Series([9,8,7,6],index= ["a","b","c","d"])
b["a"] =15
b.name = "Serise"
b.name = "new_Series"
b["b","c"] = 20