python 快速替换csv数据集字符串列表中的表情符号为空,asyncio,re,pandas
传统的字符串列表替换字符串使用遍历非常慢
比如下面这段代码,如果处理几十万或上百万的数据集时,会非常的慢,几小时几天都可能
import re
p = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U0001F6FF' u'\u2600-\u2B55 \U00010000-\U0010ffff]+')
# text = "超详细修高鼻梁教程,点️收藏慢慢看#美妆 #使用一次你就喜欢"
# txt = re.sub(p,'',text) # 正则匹配,将表情符合替换为空''
# print(txt)
bar = tqdm(enumerate(data['text']),total=len(data['text']))
for idx,text in bar:
data['text'][idx] = re.sub(p,'',text)
data
如何加速,使用异步携程加速,同时创建多个携程,使用多个携程同时处理字符串,有个对比,66w的数据只需不到1分钟即可处理完
import re
import pandas as pd
import asyncio async def replace_emoji(text):
# 表情的Unicode编码范围
emoji_pattern = re.compile("[\U0001F600-\U0001F64F\U0001F300-\U0001F5FF\U0001F680-\U0001F6FF\U0001F1E0-\U0001F1FF]", flags=re.UNICODE)
# 替换表情为空
new_text = emoji_pattern.sub('', text)
return new_text async def main():
# 读取CSV文件
df = pd.read_csv('file.csv')
# 创建一个事件循环
loop = asyncio.get_event_loop()
# 异步替换所有文本中的表情
replaced_text = await asyncio.gather(*[loop.create_task(replace_emoji(text)) for text in df['text']])
# 将替换后的文本保存回CSV文件的text列
df['text'] = replaced_text
df.to_csv('file.csv', index=False) # 运行主程序
asyncio.run(main())
python 快速替换csv数据集字符串列表中的表情符号为空,asyncio,re,pandas的更多相关文章
- c# json转换成dynamic对象,然后在dynamic对象中动态获取指定字符串列表中的值
using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.T ...
- python如何删除二维或者三维数组/列表中某维的空元素
如题,个人在使用python进行数据预处理过程中出现的问题,抽象成删除三维列表中某维为空的问题. 一.首先来看一下三维数组/列表的结构 仔细看下图就会很清楚了: 轴0即是去除第一个外括号后第一层(我把 ...
- python——快速找出两个电子表中数据的差异
最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力. 公司里会有这样的场景:有一张电子表格的内容由两三个部门或者更多的部门用到,这些员工会在维护这些表格中不定期的 ...
- python:找出两个列表中相同和不同的元素(使用推导式)
#接口返回值 list1 = ['张三', '李四', '王五', '老二'] #数据库返回值 list2 = ['张三', '李四', '老二', '王七'] a = [x for x in lis ...
- [Python学习笔记1]Python语言基础 数学运算符 字符串 列表
这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...
- python之使用heapq()函数计算列表中数值大小
# heapq函数:计算列表最大几个值和最小几个值 # 语法:heapq.nlargest(n, list,[key]) # n表示最大或最小的几个: list为分析的对象: key为排序关键字,非必 ...
- python使用二分法实现在一个有序列表中查找指定的元素
二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 例如需要查找有序list里面的某个关键字key的位置,那么首先确认list的中位数mid,下面分为三种情况 ...
- [Python]统计1个元素在列表中的出现次数
使用列表自带的count方法: list.count(element) 示例: 列表a,有4个元素,其中值1出现3次 In []: a=[,,,] In []: a Out[]: [, , , ] ...
- python四种方法实现去除列表中的重复元素
转载:https://blog.csdn.net/together_cz/article/details/76201975 def func1(one_list): ''''' 使用集合,个人最常用 ...
- Python自学:第三章 使用列表中的各个值
bicycles = ['trek','cannondale','redline','specialized'] message = "My first bicycle was a &quo ...
随机推荐
- Ubuntu系统Root用户无法登录解决办法
默认 系统 root 登录 图形界面,出现 登录失败.解决方法如下: 1,登录普通用户, 打开终端执行命令, 使用su root或sudo -i切换到root用户(必须) su root 按照提示输入 ...
- bind、call、apply区别
bind.call.apply都是用来改变函数内部this指向的方法,使用上仅有细微差别 一.代码 function person(p1, p2, p3) { console.log('this: ' ...
- Mysql不同字符串格式的连表查询
MySql报错:Error Code: 1267. Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci, ...
- leetcode medium 记录 51-100
# Title Solution Acceptance Difficulty Frequency 92 Reverse Linked List II 40.3% Medium ...
- insert-text-at-cursor-in-a-content-editable-div
https://stackoverflow.com/questions/2920150/insert-text-at-cursor-in-a-content-editable-div function ...
- ASP.NET Core Web API 接口限流
前言 ASP.NET Core Web API 接口限流.限制接口并发数量,我也不知道自己写的有没有问题,抛砖引玉.欢迎来喷! 需求 写了一个接口,参数可以传多个人员,也可以传单个人员,时间范围限制最 ...
- Jx9嵌入式脚本语言基本用法
Jx9是一种嵌入式脚本语言,可用于编写嵌入式脚本和扩展. 以下是一些使用Jx9的示例: 1. 计算器 Jx9可以轻松实现一个计算器.例如: ```print("Enter two numbe ...
- Java笔记第二弹
List常用集合子类的特点 ArrayList底层数据结构是数组 查询快,增删慢 LinkedList底层数据结构是链表 查询慢,增删快 练习: //ArrayList实现 import java.u ...
- Flex布局原理【转载】
引言 CSS3中的 Flexible Box,或者叫flexbox,是用于排列元素的一种布局模式. 顾名思义,弹性布局中的元素是有伸展和收缩自身的能力的. 相比于原来的布局方式,如float.posi ...
- RSA 简介及 C# 和 js 实现【加密知多少系列】
〇.简介 谈及 RSA 加密算法,我们就需要先了解下这两个专业名词,对称加密和非对称加密. 对称加密:在同一密钥的加持下,发送方将未加密的原文,通过算法加密成密文:相对的接收方通过算法将密文解密出来原 ...