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

【数据分析】文本(字符串)处理,第1张

前言:

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

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

目录
  • 前言:
  • 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 :

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/789405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存