查看原文
其他

tqdm库 | Python中实现进度条的几种方式

大邓 大邓和他的Python
2024-09-10

实现Python代码中显示运行进度,有如下几种场景

  1. tqdm(iterable)
  2. tqdm.notebook
  3. tqdm.pandas
  4. 其他

一、tqdm(iterable)

tqdm是 python的一个关于进度条的扩展包, 只需用 包装任何可迭代对象tqdm(iterable),就完成了!

import pandas as pd

df = pd.read_csv('test_mda.csv.gz', compression='gzip')
df


from tqdm import tqdm

ws = []
for text in tqdm(df['text'], desc='词频分析进度'):
    ws.append( len(jieba.lcut(text)) )

Run

词频分析进度: 100%|███████████████████████████| 100/100 [00:01<00:00, 52.51it/s]



二、tqdm.notebook

tqdm 也能与 jupyter notebook 适配。例如

from tqdm.notebook import tqdm

ws = []
for text in tqdm(df['text'], desc='词频分析进度'):
    ws.append(word_count(text))

Run

词频分析进度: 100%|███████████████████████████| 100/100 [00:01<00:00, 55.39it/s]

此时的进度条是绿色,而不是灰黑色。



三、tqdm.pandas

熟悉 pandas.apply 操作的, 会觉得刚刚代码太麻烦了。为了显示进度条, tqdm.pandas 初始化后, 将 .apply 更改为 .progress_apply

import jieba

tqdm.pandas(desc="词频分析进度")

df['text'].progress_apply(lambda text: len(jieba.lcut(text)))

Run

词频分析进度: 100%|███████████████████████████| 100/100 [00:01<00:00, 53.60it/s]



其他情况

使用 pandarallel 并行库, 会根据电脑 cpu 核数 n 显示 n 个进度条。

from pandarallel import pandarallel
pandarallel.initialize(progress_bar=True)

def count(text):
    import jieba
    return len(jieba.lcut(text))

df['text'].parallel_apply(lambda text: count(text))



精选内容

LIST | 社科(经管)可用数据集列表
LIST | 文本分析代码列表
LIST | 社科(经管)文本挖掘文献列表
管理科学学报 | 使用「软余弦相似度」测量业绩说明会「答非所问程度」
管理世界(更新) | 使用「经营讨论与分析」测量「企业数字化」
文献&代码 | 使用Python计算语义品牌评分(Semantic Brand Score)
数据集(更新) | 2001-2022年A股上市公司年报&管理层讨论与分析
数据集(更新) | 372w政府采购合同公告明细数据(2024.03)
数据集  | 人民网政府留言板原始文本(2011-2023.12)
数据集  |  人民日报/经济日报/光明日报 等 7 家新闻数据集
可视化 | 人民日报语料反映七十年文化演变
数据集 | 3571万条专利申请数据集(1985-2022年)
数据集 |  专利转让数据集(1985-2021)
数据集 |  3394w条豆瓣书评数据集
数据集 | 豆瓣电影影评数据集
数据集 |  使用1000w条豆瓣影评训练Word2Vec
代码 | 使用 3571w 专利申请数据集构造面板数据
代码 | 使用「新闻数据集」计算 「经济政策不确定性」指数
数据集 | 国省市三级gov工作报告文本
代码 | 使用「新闻数据」生成概念词频「面板数据」
代码 | 使用 3571w 专利申请数据集构造面板数据
代码 | 使用gov工作报告生成数字化词频「面板数据」
继续滑动看下一个
大邓和他的Python
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存