熊猫-遍历一百万个单元格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了熊猫-遍历一百万个单元格相关的知识,希望对你有一定的参考价值。

我有一个导出的文件,其中包含20万多个代码,我仅尝试过滤掉这些代码。由于每个代码都具有多行不相关的信息,因此文件本身变得超过一百万行。

我写了一个脚本来读取文件,根据前缀查找代码,然后写入另一个.csv文件:

import pandas as pd

df = pd.read_csv('export_file.csv')

output = []

for index, row in df.iterrows(): 
  if ('PREFIX-01' in str(row['code'])):
    code = str(row['code'])
    output.append(code)

with open('output.csv','w') as file:
    for line in output:
        file.write(line)
        file.write('\n')

该脚本适用于少量代码(大约50k),但是要花很长时间才能遍历所有这些行。 Python和Pandas对我来说还比较陌生,所以我想知道是否有一种方法可以使脚本更有效?

我听说grep在这里会有用,但是目标是最终将其写到Web服务中,因此我宁愿不通过命令行进行操作。

答案

感谢@Datanovice,使我的程序工作得更好。将执行时间从大约10分钟缩短至5秒。

import pandas as pd
import time

df = pd.read_csv('exported_file.csv')


df2 = df[df['code'].str.contains('PREFIX-01', na=False)]
output = df2['code'] # Feels redundant for this step (only extract the code column) 
                     # Tips are welcome how to bake it into the line above 

output.to_csv('output.csv', sep=',', encoding='utf-8', index=False)

以上是关于熊猫-遍历一百万个单元格的主要内容,如果未能解决你的问题,请参考以下文章

将熊猫数据框单元格中的字典解析为新行单元格(新列)

有条件地格式化 Python 熊猫单元格

将值写入python中熊猫工作表中的特定单元格

熊猫(Python):用前一行值填充空单元格?

基于将另一个单元格与另一个数据帧的单元格-熊猫进行比较,更改一个数据帧中单元格的值

使熊猫数据框中的 H3 单元格转换更快