Pandas 字符串处理

'''Pandas的字符串处理:
  1.使用方法:先获取Series的str属性,然后在属性上调用函数;
  # 例子:df.loc[:,'bWendu'] = df['bWendu'].str.replace('℃','').astype('int32')
  2.只能在字符串列上使用,不能数字列上使用;
  3.Dataframe上没有str属性和处理方法,只能在Series使用
  4.Series.str并不是Python原生字符串,而是自己的一套方法,不过大部分和原生str很相似。
Series.str字符串方法列表参考文档:
https://pandas.pydata.orglpandas-docs/stable/reference/series.htmI#string-handling'''

import pandas as pd 
df = pd.read_csv("D:\\python39\\pandas\\antlearnpandasmaster\\datas\\beijing_tianqi\\beijing_tianqi_2018.CSV")


##1.获取Series的str属性,使用各种字符串处理函数

ser = df['bWendu'].str.replace('℃','')
ser = df['bWendu'].str.isnumeric()
#ser = df['aqi'].str.len()#报错

##2.使用str的startswith、contains等得到的bool的Series可以做条件查询,其中startswith、contains用法和结果相同
ser =df.loc[df['ymd'].str.startswith('2018-02'),:]
ser =df.loc[df['ymd'].str.contains('2018-02'),:]


##3.多次str处理的链式操作

##怎样提取201803这样的数字月份?
##3.1 先将日期2018-03-31替换成20180331的形式

ser = df['ymd'].str.replace('-','')

##3.2 提取月份字符串201803
ser = df['ymd'].str.replace('-','').str.slice(0,6)#由于str是Series上的属性,不能直接使用.slice()函数
ser = df['ymd'].str.replace('-','').str[0:6]#同上

##4.正则表达式的处理
def get_nianyueri(x):
       year,month,day = x['ymd'].split('-')
       return f"{year}年{month}月{day}日"
df['中文日期'] = df.apply(get_nianyueri,axis=1)
#print(df['中文日期'])
#问题:怎样将“2018年12月31日"中的年、月、日三个中文字符去除?

 #df['中文日期'].str.replace('年','').str.replace('月','').str.replace('日',"")
z=df['中文日期'].str.replace('[年月日]','')

print(z)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值