pandas学习笔记10

pandas.Series的一些应用
假设已经创建了一个series

a={'a':1,'b':5,'c':6}
ser=pd.Series(a)
print(ser)
ser['a']#通过标签获取数值
ser.index#返回标签
ser.values#返回值
ser['f']#不存在的标签取不出值

注意:会优先找标签中存在的值,没有再去找位置索引

ser[['a','b']]#可以通过多个索引标签访问多个数据,注意有两个方括号

当索引为object类型时,既可以使用标签索引也可以使用位置索引
Series 类似于固定大小的 dict,把 index 中的索引标签当做 key,而把 Series 序列中的元素值当做 value,然后通过 index 索引标签来访问或者修改元素值

s = pd.Series([6,7,8,9,10],index = ['a','b','c','d','e'])
print(s)
# 注意需要选择多个标签的值,用[[]]来表示(相当于[]中包含一个列表)
print(s[['a','c','d']]) # s['a','c','d']

Series使用标签切片运算与普通的Python切片运算不同:Series使用标签切片时,其末端是包含的。
Series使用python切片运算即使用位置数值切片,其末端是不包含。

# 位置索引和标签索引刚好一致,使用切片时,如果是数值会认为是python切片运算,不包含末端
s = pd.Series(np.random.rand(10))
s1[1:5]

当index为数值类型的时候,使用位置索引会抛出keyerror的异常,也就是说当index为数值类型的时候,索引使用的是名称索引。
但是在切片的时候,有很大的不同,如果index为数值类型的时候,切片使用的是位置切片。总的来说,当index为数值类型的时候:
进行索引的时候,相当于使用的是名称索引;
进行切片的时候,相当于使用的是位置切片;

s1= pd.Series([6,7,8,9,10],index = ['e','d','c','b','a'])
s1["c":"a"]
print(s.head()) # 默认查看前5条数据
print(s.head(1)) # 默认查看前1条数据
print(s.tail()) # 默认查看后5条数据
s = pd.Series(np.random.rand(5),index=list("abcde"))
# 新索引在上一个索引中不存在,生成新对象时,对应的值,设置为NaN
s1 = s.reindex(list("cde"))#取对应的三个
# 设置填充值
s2 = s.reindex(list("cde12"), fill_value=0)#多余的值用0填充

对齐运算
是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN

s1 = pd.Series(np.random.rand(3), index=["Kelly","Anne","T-C"])

s2 = pd.Series(np.random.rand(3), index=["Anne","Kelly","LiLy"])

print("==========s1=========")
print(s1)
print("==========s2=========")
print(s2)
print("==========s1+s2=========")
print(s1+s2)#T-C与Lily没有对应值都会输出NAN
s = pd.Series(np.random.rand(5),index=list("abcde"))
print(s)
s1 = s.drop("a") # 返回删除后的值,原值不改变 ,默认inplace=False
print(s1) 
print(s)

删除操作

s = pd.Series(np.random.rand(5),index=list("abcde"))
print(s)
s1 = s.drop("a") # 返回删除后的值,原值不改变 ,默认inplace=False
print(s1) 
print(s)
s = pd.Series(np.random.rand(5),index=list("abcde"))
s1 = s.drop("a",inplace=True) # 原值发生变化,返回None
#s = s.drop("a")
print(s1) 
print(s)

inplace为true时会保留原来的位置,且为None

import pandas as pd
# 添加
s1 = pd.Series(np.random.rand(5),index=list("abcde"))
print(s1)

s1["s"] = 100  # 对应的标签没有就是添加,,有就是修改
print(s1)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值