Pandas(六):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);

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

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张烫麻辣亮。

谢谢老板支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值