栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【数据分析】文本(字符串)处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据分析】文本(字符串)处理

前言:

这篇博客是对自己学习过后的一点点总结及记录,如果您对此感兴趣,就点个关注呗!我们一起学习,共同进步。

  • 技术是开源的,知识是共享的。
  • 爱的传递,希望能帮到更多的人。

目录
  • 前言:
  • 1. 导入相关库
  • 2. str属性
    • 2.1 读入数据演示
    • 2.2 replace: 是Pandas本身的替换功能
    • 2.3 和 python 原生字符串区别不大的方法
    • 2.4 实战练习
  • 3. 高级方法
  • 4. 其他方法
    • 4.1 get方法
    • 4.2 从索引为1切到最后
    • 4.3 slice 进行截取
    • 4.4 slice_replace 对元素进行切片替换
    • 4.5 cat 对字符串进行连接
    • 4.6 repeat 重复
    • 4.7 实战练习
  • End :

1. 导入相关库

import numpy as np
import pandas as pd

2. str属性

Series中可以用字符串相关的方法,封装在str子模块下面。

2.1 读入数据演示
 wine = pd.read_csv("练习数据wine.csv",sep=',')     #导入数据
 wine.head()    #展示所有数据
2.2 replace: 是Pandas本身的替换功能
grade.replace('王雪','张三') #替换一个

grade.replace({'王雪':'张三', '韩林霖':'赵四'}) # 用字典一次性替换多个

#   grade.replace('王','六')  #不能进行单个字替换
  • 对比, str 功能下面的替换
t = grade.姓名.str.replace('王','酪')  #可以进行单个字替换
​
2.3 和 python 原生字符串区别不大的方法
  1. len #长度
  2. lower #小写
  3. upper #大写
  4. islower
  5. isupper
  6. find
  7. count
  8. strip
  9. split
 # 统计这个班级有多少个2个字的,3个字的
grade['姓名长度'] = grade.姓名.str.len()    #长度
grade.姓名长度.value_counts()  #次数
#提取姓名长度为4的
grade[grade.姓名长度 == 4] 
imdb.title.str.upper()#将原来的转换为大写
2.4 实战练习

wine

  1. 把品牌中的红,替换成黑。
  2. 统计商品名称中"酒" 这个字都出现了多少次,并统计各次数出现的值。
  3. 提取出日期中的年,月,日 并拆分成三列。
  4. 提取出所有二锅头。
wine.品牌.str.replace('红','黑')

wine['酒次数'] = wine.商品名称.str.count('酒')
wine.酒次数.value_counts()

wine[['年','月','日']] =  wine.日期.str.split('/', expand=True)

wine[wine.商品名称.str.contains('二锅头')]
3. 高级方法
  • contains 包含 : 判断字符串中是否包含某个自字符
  • startswith :判断是否以子串开始
  • endswith : 判断是否以子串结束
# 提取出姓名中包含罗的数据
grade[grade.姓名.str.contains('罗')]

# 提取出第一个字是梦的
grade[grade.姓名.str.startswith('梦')]

​# 提取出最后一个字是宇的
grade[grade.姓名.str.endswith('宇')]
4. 其他方法 4.1 get方法
grade.姓名.str.get(0)  #返回首个字符
wine.商品名称.str.get(1)   #返回第二个字符
4.2 从索引为1切到最后
grade.姓名.str.slice(1)
4.3 slice 进行截取
wine.商品名称.str.slice(0,3)
4.4 slice_replace 对元素进行切片替换
wine.商品名称.str.slice_replace(0,3,'你好')
4.5 cat 对字符串进行连接
grade.姓名.str.cat(sep=', ')
4.6 repeat 重复
# 把每个元素重复 n 次
grade.姓名.str.repeat(2)
4.7 实战练习
  1. 将imdb当中star_rating, 拆分成整数列 和小数列, 中间的点 不要了。
  2. 将imdb数据title中的标题,连接成没有空格的字符串。
  3. 将imdb数据中genre这一列的所有字母改成大写字母。
  4. 找出广告词中含有领券的商品。
  5. 找出wine数据中ID中含有3个以上数字8的商品。
imdb['整数'] = imdb.star_rating.astype('str').str.get(0)
imdb['小数'] = imdb.star_rating.astype('str').str.get(2)

imdb['title'] = imdb.title.str.replace(' ','')

imdb['genre'] = imdb.genre.str.upper()

wine.广告词.str.contains('领券').fillna(False)
wine[wine.广告词.str.contains('领券').fillna(False)]

wine[wine.ID.astype('str').str.count('8') >= 3]

End :

如果觉得有收获,就点个赞吧!
你的鼓励是我创作的最大动力!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号