在python中处理大量的Excel行

问题描述

我有.xlsx文件,它们仅包含一个名为“ nomenklatura”的列,并具有数千行(从60k到600k)。所有的值都是字符串。我需要检查它们是否匹配我的模式。如果没有,我应该更改它们(photo №1)并将结果导出到另一个.xlxs文件中。

我编写了一个原始代码,使用熊猫可以完成我需要的所有操作,但是随着时间的推移,它的工作速度会变慢(前5k行在3分钟内处理完毕,接下来的5k行在30分钟内处理等等)。 我是Python的新手,还是熊猫的初学者。我想到的唯一想法是遍历pd.DataFrame中的所有元素,使用我的函数change_nomen()处理它们,将它们附加到一个空数组中,并使用该数组创建新的pd.DataFrame。然后只需导出到excel。

这是程序的简短版本,用于显示我使用的逻辑。

import pandas as pd

def change_nomen(nomen):
    # code with millions of elif
    return new_nomen

def main():
    data = pd.read_excel("data\\test\\100k_test.xlsx")
    new_nomen_name_list = {"nomenklatura": []}

    for nomen in data["nomenklatura"]:
        new_nomen_name_list["nomenklatura"].append(change_nomen(nomen))
    
    result = pd.DataFrame(data = new_nomen_name_list)
    result.to_excel("data\\test_output\\100 000_added_zeroes.xlsx")
    
main()

我应该使用哪些工具来加快程序速度?我知道pandas.DataFrame.apply()numpy.array()可以帮助我。但是,最有效的解决方案是什么?也许我应该尝试一些不同的东西?

谢谢您的回答!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)