Pandas——在超过100万个细胞中循环



我有一个导出的文件,其中包含超过20万个代码,我只想过滤掉这些代码。由于每个代码都有多行不相关的信息,文件本身就超过了100万行。

我写了一个脚本来读取文件,找到基于前缀的代码,然后写入另一个.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服务,所以我宁愿不通过命令行执行。

多亏了@Data新手,我让程序运行得更好了。执行时间从约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)

最新更新