文章图片
文章图片
文章图片
文章图片
要处理文本数据 , 需要比数字类型的数据更多的清理步骤 。为了从文本数据中提取有用和信息 , 通常需要执行几个预处理和过滤步骤 。
Pandas 库有许多可以轻松简单地处理文本数据函数和方法 。在本文中 , 我介绍将学习 5 种可用于过滤文本数据(即字符串)的不同方法:
- 是否包含一系列字符
- 求字符串的长度
- 判断以特定的字符序列开始或结束
- 判断字符为数字或字母数字
- 查找特定字符序列的出现次数
import pandas as pd
df = pd.read_csv(\"example.csv\")
df
我们这个样例的DataFrame 包含 6 行和 4 列 。我们将使用不同的方法来处理 DataFrame 中的行 。 第一个过滤操作是检查字符串是否包含特定的单词或字符序列 , 使用 contains 方法查找描述字段包含“used car”的行 。但是要获得pandas中的字符串需要通过 Pandas 的 str 访问器 , 代码如下:
df[df[\"description\"
.str.contains(\"used car\")
但是为了在这个DataFrame中找到所有的二手车 , 我们需要分别查找“used”和“car”这两个词 , 因为这两个词可能同时出现 , 但是并不是连接在一起的:
df[df[\"description\"
.str.contains(\"used\") &
df[\"description\"
.str.contains(\"car\")
可以看到最后一行包含“car”和“used” , 但不是一起 。
下一个方法是根据字符串的长度进行过滤 。假设我们只对超过 15 个字符的描述感兴趣 。可以使用内置的 len 函数来执行此操作 , 如下所示:
df[df[\"description\"
.apply(lambda x: len(x) > 15)
这里就需要编写了一个 lambda 表达式 , 通过在表达式中使用 len 函数获取长度并使用apply函数将其应用到每一行 。执行此操作的更常用和有效的方法是通过 str 访问器来进行:
df[df[\"description\"
.str.len() > 15
我们可以分别使用startswith和endswith基于字符串的第一个或最后一个字母进行过滤 。
df[df[\"lot\"
.str.startswith(\"A\")
这个方法也能够检查前 n 个字符 。例如 , 我们可以选择以“A-0”开头的行:
df[df[\"lot\"
.str.startswith(\"A-0\")
Python 的内置的字符串函数都可以应用到Pandas DataFrames 中 。例如 , 在价格列中 , 有一些非数字字符 , 如 $ 和 k 。我们可以使用 isnumeric 函数过滤掉 。
df[df[\"price\"
.apply(lambda x: x.isnumeric()==True)
同样如果需要保留字母数字(即只有字母和数字) , 可以使用 isalphanum 函数 , 用法与上面相同 。
count 方法可以计算单个字符或字符序列的出现次数 。 例如 , 查找一个单词或字符出现的次数 。
我们这里统计描述栏中的“used”的出现次数:
df[\"description\"
.str.count(\"used\")
# 结果
0 1
1 0
2 1
3 1
4 1
5 0
Name: description dtype: int64
如果想使用它进行条件过滤 , 只需将其与一个值进行比较 , 如下所示:
df[df[\"description\"
- 终于不是方便面修复了!老外用3D打印笔来修复围墙,这波操作厉害
- 华为|2022激光打印机销量榜:小米第3, 兄弟第4,华为异军突起挤进前2强
- 网络安全|算法: 从上到下打印二叉树
- 哪里有高清短视频素材下载免费?5个,免费、高清、无水印视频剪辑一站搞定
- 打印机|1299元国产自研!得力彩色多功能打印机发布:一张仅1分钱
- 3D打印|互联网巨头合规动作频频 携程注销一块小贷牌照
- 爱普生|一切正常的爱普生打印机被厂商强行变砖:惹怒大量用户
- 3D打印|马云高估了?阿里副总裁从上海深夜逃离后,达摩院又要开始裁员了
- 3D打印|马云果然留有后手,国外悄悄养大千亿独角兽,7年的努力没白费
- 本文转自:人民邮电报①小朋友们兴致勃勃地体验“3D巧克力打印”技术。|中国电信携多款明星产品亮相世界 5G 大会