这个问题是我今天早些时候提出的上一个问题for loop taking too long to produce output的延续。正如我在一条评论中告诉我的那样,我使用pandas
来代替xlrd
来阅读excel文件。这是我写的程序 -
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格式导出输出时,我在我的目录中得到一个文件,随着循环的进行,其大小会继续增加。那么为什么这不会发生呢?我该怎么办?
答案 0 :(得分:1)
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)