python数据清洗是什么意思,python数据清洗方法
FlashText是GitHub上的一个开源Python库。如前所述,它在关键字提取和关键字替换任务中具有极高的性能。本文将详细讲解flashtext的使用方法,有需要的可以参考。
00-1010 1.准备flashtext环境2、添加关键词3、提取关键词4、替换关键词5、获取所有关键词6、批量添加关键词7、批量删除关键词8、比较执行效率。正则表达式最常用于普通的小规模数据过滤和清洗过程中,但是随着数据规模的增大,正则表达式似乎就显得缺乏了。
正则表达式在10k的词库中找到15k个关键词的时间差不多是0.165秒。但是Flashtext只需要0.002秒。所以在这个问题上,Flashtext的速度比正则表达式快82倍左右。
从上面示例图的性能对比可以发现,随着我们需要处理的字符越来越多,正则表达式的处理速度几乎是线性增长的。然而,Flashtext几乎是一个常量。
目录
也可以通过pip或者其他方式安装flashtext。这里默认使用清华大学的镜像站。
pip安装flash text-I https://pypi.tuna.tsinghua.edu.cn/simple
准备好flashtext环境之后,我们再来看看flashtext的重要使用过程,帮助我们更好的完成数据清理操作。
1、准备flashtext环境
这里添加关键词时,通过单个关键词添加到关键词词库,使用add_keyword函数添加。第一个参数指示要添加的关键字,第二个参数指示第一个关键字的别名。如果找到关键字,它将显示为别名。如果第二个参数没有用作别名,仍将显示原始名称。
从flashtext导入关键字处理器
#初始化关键字库处理器
处理器=关键字处理器()
#以正常方式添加关键字
processor.add_keyword(Python )
#别名方式添加关键字
processor.add_keyword(Scala , Java )
这样,所需的关键词已经以两种方式被添加到词库处理器中。
2、添加关键词
通过上一步添加关键词,词库处理器中已经存在关键词信息,然后使用extract_keywords提取关键词。
#从字符串中提取关键字信息
found=processor . extract _ keywords(‘我喜欢Python和Scala。’)
#结果
打印(找到)
# [Python , Java]
结果和我们预期的一样,Scala也显示为Java。
3、提取关键词
replace关键字使用replace_keywords函数,前提是同义词库中带有别名的单词可以被替换,就像上面的Scala显示为Java一样。
替换字符串中的Scala关键字。既然Scala对应的别名是Java,那么一个字符串中的Scala就要换成Java。
replaced=processor . replace _ keywords(我喜欢Scala。)
#结果
打印(已替换)
#我喜欢Java。
# Scala确实被Java取代了。
4、替换关键词
有时候,你记不清楚在KeywordProcessor词库处理器中添加了哪些关键词。此时可以使用get_all_keywords函数获取当前所有的关键字。
all _ keywords=processor . get _ all _ keywords()
#结果
打印(所有关键字)
# { python : Pytho
n, scala: Java}
6、批量的添加关键词
当关键词库需要更多的关键词的时候,可以通过列表或是字典的方式来进行批量的添加。对应的函数分别是add_keywords_from_list、add_keywords_from_dict函数。
# 初始化一个字典通过用来做批量添加dict_ = {
java: [java_ee, java_se, java_me],
python: [pandas, all]
}
# 通过字典的方式来批量添加关键词
processor.add_keywords_from_dict(dict_)
# 从批量添加的关键词中匹配关键词
result = processor.extract_keywords(looking for java_ee and pandas.)
# 结果
print(result)
# [java, python]
# 通过列表的方式批量添加关键词
processor.add_keywords_from_list([scala, python, scala, go])
# 通过get_all_keywords查看一下所有关键词
all_keywords = processor.get_all_keywords()
# 结果
print(all_keywords)
# {python: python, pandas: python, scala: scala, java_ee: java, java_se: java, java_me: java, all: python, go: go}
发现所有的关键词已经添加到词库处理器中,并且重复的不会再次添加。
7、批量删除关键词
批量删除词库处理器中的关键词同样是有两种方式,一个是列表、另一个是字典。对应的函数分别是remove_keywords_from_list、remove_keywords_from_dict函数。
# 批量移除列表中的关键词processor.remove_keywords_from_list([python,java_ee,java_me])
# 批量移除字典中的关键词
processor.remove_keywords_from_dict({python: [pandas,all]})
# 通过get_all_keywords查看一下所有关键词
all_keywords = processor.get_all_keywords()
# 结果
print(all_keywords)
# {scala: scala, java_se: java, go: go}
发现需要移除的关键词已经被全部移除了。
8、执行效率对比
为了更可观的展示效果,找了两个flashtext在搜索和替换关键词过程中的效率对比图可以一目了然。
flashtext、正则表达式搜索效率对比
flashtext、正则表达式搜索替换对比
以上就是详解Python中的数据清洗工具flashtext的详细内容,更多关于Python数据清洗的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。