关于Series的index的方法和属性使用说明
作者:bc超
这篇文章主要介绍了关于Series的index的方法和属性使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Series的index的方法和属性
from pandas import Series,DataFrame
obj = Series([1,2,3,5,8,12],index=[1,2,3,4,5,6])
obj2 = Series([2,6,12,15,18,20],index=[0,1,2,3,4,5])
1、append,合并
obj.append(obj2)
2、obj.diff(),每行与上一行的差值,Difference with previous row
与前第2行的差值
与倒数前一行的差值
3、obj3.unique() 计算唯一值
4、is_unique,判断是否有重复值,如果没有返回True,否则返回False
5、is_monotonic,当各元素均大于等于前值时,返回True,否则返回False
6、drop,删除
7、isin,判断是否包含在参数中
8、reindex,创建一个新的索引对象
Series中str属性的方法+index索引的特点
Pandas字符串处理
前面我们已经使用了字符串的处理函数:
df["bWendu"].str.replace("℃", "").astype('int32')
1.Pandas的字符串处理的基本介绍
- 使用方法:先获取Series的str属性,然后在属性上调用函数;
- 只能在字符串列上使用,不能数字列上使用;
- Dataframe上没有str属性和处理方法
- Series.str并不是Python原生字符串,而是自己的一套方法,不过大部分和原生str很相似;
2.一些常用方法的使用举例
①切分字符串,split()
# (1)把DataFrame列中字符串以','分隔开,每个元素分开后存入一个列表里 series=data['列名'].str.split(',') #(2)参数expand,这个参数取True时,会把切割出来的内容当做一列,产生多列。 series=data['列名'].str.split(',',expand=True) #(3)只要第一列 series=data['列名'].str.split(',',expand=True)[0]
②替换,replace()
# #用‘-'代替‘,' series=data['列名'].str.replace(',','-')
③是否包含表达式,contains()
#返回的是布尔值。 series=data['列名'].str.contains('we')
④查找所有符合正则表达式的字符findall()
# 以数组的形式返回。 series=data['列名'].str.findall("[a-z]")
⑤计算字符串的长度,len()
series=data['列名'].str.len()
⑥去除前后的空白字符,strip()
series=data['列名'].str.strip() series=data['列名'].str.rstrip() #去除后面的空白字符 series=data['列名'].str.lstrip() #去除前面的空白字符
⑦其他的一些判断方法
isalnum() # 是否全部是数字和字母组成 isalpha() # 是否全部是字母 isdigit() # 是否全部都是数字 isspace() # 是否空格 islower() # 是否全部小写 isupper() # 是否全部大写 istitle() # 是否只有首字母为大写,其他字母为小写
3.使用过程中的一些注意
链式使用:当执行完一次str的方法后,一般不可以继续使用str的方法,需要再次使用str的属性,再使用str的方法
Series.str默认就开启了正则表达式模式 # 正则表达式替换,从2015年12月10如中将年月日替换为20151210 df["中文日期"].str.replace("[年月日]", "")
index索引的特点
1.特点
- 更方便的数据查询,使用index查询的时候可以获得性能提升;
- 自动的数据对齐功能;
- 更多更强大的数据结构支持;
2.为什么使用index索引可以提高查询性能呢?
- 如果index是唯一的,Pandas会使用哈希表优化,查询性能为O(1);
- 如果index不是唯一的,但是有序,Pandas会使用二分查找算法,查询性能为O(logN);
- 如果index是完全随机的,那么每次查询都要扫描全表,查询性能为O(N);
所以我们再对于完全随机索引的查询情况,如果提前排序,可以提高查询速率
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。