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