这是我的密码:
import xlwings as xw
import datetime as dt
import numpy as np
import pandas as pd
import threading
import time
#connect to workbook
wb = xw.Book(r'C:\Users\Ryan\AppData\Local\Programs\Python\Python37-32\constituents.xlsx')
sht = wb.sheets['constituents']
#store data in np array, pass to Pandas
a = sht.range('A2:C1760').options(np.array).value
df = pd.DataFrame(a)
df = df.rename(index=str, columns={0: "tickers", 1: "start_dates", 2: "end_dates"})
#initialize variables
start_quarter = 0
start_year = 0
fiscal_dates = []
s1 = pd.date_range(start='1/1/1964', end='12/31/2018', freq='B')
df2 = pd.DataFrame(data=np.ndarray(shape=(len(s1),500), dtype=str), index=s1)
#create list of fiscal quarters
def fiscal_quarters(start_year):
year_count = start_year - 1
quarter_count = 1
for n in range(2019 - start_year):
year_count += 1
for i in range(1,5):
fiscal_dates.append(str(quarter_count) + 'Q'+ str(year_count)[-2:])
quarter_count += 1
quarter_count = 1
#iterate over list of tickers to create self-named spreadsheets
def populate_worksheets():
for n in range(len(fiscal_dates)):
wb.sheets.add(name=fiscal_dates[n])
#populate df2 with appropriate tickers
def populate_tickers():
count = 0
for n in range(len(s1)):
for i in range(len(df['tickers'])):
if df.loc[str(i), 'start_dates'] <= s1[n] and df.loc[str(i), 'end_dates'] > s1[n]:
count += 1
df2.loc[str(s1[n]), str(count)] = df.loc[str(i), 'tickers']
count = 0
#run populate_tickers function with status updates
def pt_thread():
t = threading.Thread(target=populate_tickers)
c = 0
t.start()
while (t.is_alive()):
time.sleep(5)
count += 5
print("Working... " + str(c) + 's')
首先,我在pythonshell中运行fiscal_quarters(1964)
,然后运行pt_thread()
,这看起来特别需要大量资源。它已经在我的笔记本电脑上运行了半个多小时了。然而,在不等待它完成运行的情况下,是否有任何方法可以查看它是否按预期工作?或者根本没有?它仍在向shell打印“正在工作…”,我认为这是一个好迹象,但如果出现问题,我想开始排除故障,而不是无限期地等待一段时间后再放弃。你知道吗
作为参考,s1系列包含约17500个项目,而df['tickers']列包含约2000个项目,因此应该有大约35000000个迭代,每个迭代有4个操作。这是一个很大的问题,还是一个现代的个人电脑应该能够很快地解决这个问题,而我的程序可能只是不工作?你知道吗
如果您运行的循环花费了很长时间,并且希望了解发生了什么,那么可以使用
tqdm
。它给出了每秒的迭代次数和估计的剩余时间。下面是一个简单的例子:相关问题 更多 >
编程相关推荐