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 ...
随机推荐
- Ansys-CHEMKIN-pro表面反应机制输入(Surface Kinetics Input)规则
chemkin表面反应机制文件(Ansys-CHEMKIN-pro表面反应机制输入) 1. 文件包含表面活性位(相).表面组分,固相组分.固相,热力学数据,反应机制: 2. 顺序:物质名称,活性位数据 ...
- consul 服务注册与更新
服务注册与发现是微服务架构中不可或缺的重要组件. 起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问.直到后来出现了多个节点的分布式架构,起初的解决手段是在服 ...
- ffmpeg均匀分割视频命令
ffmpeg -y -i input.wav -f segment -segment_time 5 output-%d.wav -segment_time 分割视频片段大小 -segmenet_lis ...
- 2019.11.14 typeScript环境搭建
当前环境为windows系统,在VSCode下搭建typeScript环境.在mac系统下同window系统一样,只是安装好ts环境后可能会报tsc命令不能使用的错误,这个时候需要找到tsc命令所在的 ...
- STM32使用DMA接收不定长数据
开启串口,是能串口全局中断 配置DMA并勾选Memory选项 继续配置工程并且生成代码 添加一些串口通讯使用的全局变量 #define BUFFER_SIZE 128 uint8_t Tx_Buf[5 ...
- 120、商城业务---订单服务---rabbitTemplate循环依赖问题
https://blog.csdn.net/qq_41731316/article/details/119803796
- 统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?
作者:闻洪 开源大数据平台E-MapReduce(简称"EMR")是云原生开源大数据平台,向客户提供简单易集成的Hadoop.Hive.Spark.Flink.Presto.Cli ...
- Android笔记--在活动之间传递消息
显式Intent和隐式Intent Intent--各个组件信息沟通的桥梁 组成部分: 显式Intent:--精确匹配 具体实现: 1.在Intent的构造函数中指定 2.调用意图对象的setClas ...
- Javaweb学习第十二弹--Request和Response
XML配置方式编写Servlet 3.0版本之前,仅仅支持XML配置文件的配置方式 1.编写Servlet类 2.在web.xml中配置该Servlet Request和Response Reques ...
- 使用python自动监控程序运行过程数据
操作系统 :CentOS 7.6.1810_x64 Python 版本 : 2.7.5 一.背景描述 工作中会遇到需要监控程序运行过程数据的情况,比如定时执行监控的cmd并记录执行结果,本文提供一种实 ...