Pandas(六):Series中str属性的方法+index索引的特点

文章目录

  • 一、Pandas字符串处理
    • 1.Pandas的字符串处理的基本介绍
    • 2.一些常用方法的使用举例
    • 3.使用过程中的一些注意
  • 二、index索引的特点
    • 1.特点
    • 2.为什么使用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);

所以我们再对于完全随机索引的查询情况,如果提前排序,可以提高查询速率

你可能感兴趣的:(数据分析)