Pandas系列(八)字符串处理

  前面我们已经使用了字符串的处理函数:df["bWendu"].str.replace("℃", "").astype('int32')

Pandas的字符串处理:

  1. 使用方法:先获取Seriesstr属性,然后在属性上调用函数;
  2. 只能在字符串列上使用,不能数字列上使用;
  3. Dataframe上没有str属性和处理方法
  4. Series.str并不是Python原生字符串,而是自己的一套方法,不过大部分和原生str很相似;

获取数据

  df.dtypes查看各列的数据类型:

Pandas系列(八)字符串处理

获取Series的str属性

  获取Seriesstr属性,然后使用各种字符串处理函数:

Pandas系列(八)字符串处理

  它是不能用于非string类型的数据的。否者会报错:AttributeError: Can only use .str accessor with string values!

使用str的startswith、contains等得到bool的Series可以做条件查询

  使用strstartswithcontains等判断字符串中是否包含某些特定字符串,boolSeries可以做条件查询:

Pandas系列(八)字符串处理

需要多次str处理的链式操作

  比如怎样提取201803这样的数字月份?可以分为两步:1、先将日期2018-03-31替换成20180331的形式;2、提取月份字符串201803。

Pandas系列(八)字符串处理

  这里要注意str.method返回的是一个Series,在这个Series上再进行.method是会报错的:

Pandas系列(八)字符串处理

  这里要注意slice就是切片语法,可以直接用。

使用正则表达式的处理

  将中文的年月日添加为新列:

Pandas系列(八)字符串处理

  Series.str默认就开启了正则表达式模式:

Pandas系列(八)字符串处理