这个问题是上一个问题的延续for 循环花费太长时间才能产生输出 https://stackoverflow.com/questions/41339200/for-loop-taking-too-long-to-produce-output?noredirect=1#comment69881316_41339200我今天早些时候问过。正如在一篇评论中向我建议的那样,我使用了pandas
用于读取 excel 文件来代替xlrd
。这是我写的程序 -
import pandas as pd
import numpy as np
no_of_columns = 10000
Book1 = pd.read_excel("D:\Python\Book1.xlsx",header=None,name=range(no_of_columns))
Book2 = pd.read_excel("D:\Python\Book2.xlsx",header=None,name=range(no_of_columns))
Book3 = pd.read_excel("D:\Python\Book3.xlsx",header=None,name=range(no_of_columns))
for i in range(1,11001):
for j in range(0,10000):
if Book1.iloc[i,j] == 100 and Book2.iloc[i,j] == 150 and Book3.iloc[i,j] == 150:
print 1
else:
print 0
但这也没有解决我遇到的问题。该程序仍在运行(已运行 5 小时),并且我在目录中导出的文本输出大小仍为 0 字节。再说了,程序有问题吗?为什么我得到的文件自执行开始以来大小一直相同?我已经运行了这么大的循环R但每次我开始以文本或 Excel 格式导出输出时,我都会在目录中得到一个文件,该文件的大小随着循环的进行而不断增加。那么为什么这没有发生在这里呢?我应该在这里做什么?
IIUC:
假设所有书的尺寸相同
(Book1.eq(100) & Book2.eq(150) & Book3.eq(150)) * 1
回复评论:
我写这篇文章也是为了美观。为了复制你所做的事情并将结果保存到 csv 中,我会这样做:
(Book1.eq(100) & Book2.eq(150) & Book3.eq(150)).stack().mul(1) \
.to_csv('filename.csv', header=False, index=False)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)