我对编码世界相对较新,试图做一些略微超越我的事情。 来到代码,我试图运行有两个部分。第一部分是 -
import datetime
import time
import pandas as pd
import numpy as np
d1 = datetime.datetime.strptime('01/01/2016 11:59:57 AM','%m/%d/%Y %I:%M:%S %p')
d2 = datetime.datetime.strptime('01/31/2016 11:59:53 PM','%m/%d/%Y %I:%M:%S %p')
odtd = datetime.timedelta(seconds=05)
a = []
def tint():
x = d1
while x < d2:
x = x + odtd
a.append(x.strftime('%m/%d/%Y %I:%M:%S %p'))
return a
a= tint()
df3 = np.asarray(a)
np.savetxt("Check2.csv",df3,delimiter = ",", fmt = "%s", header = "Date Format")
上面的代码创建了一个.csv文件,该文件从开始日期到结束日期(d1,d2)每隔5秒对列的行条目编制索引。您可以将此文件保存在工作目录中并检查输出。
现在,代码的第二部分使用.csv文件(从另一个名为UCA1的源获得),该文件具有索引列(%Y-%m-%dT%H:%M:%S)格式和随机值在它的第二列。试图从&#34; Check2.csv&#34;运行查找。到&#34; UCA1 Ticks&#34;并存储在&#34; Check2.csv&#34;中的一列中,我写下面的代码 -
#2nd Part
df1 = pd.read_csv("UCA1 Ticks.csv")
pd.read_csv("UCA1 Ticks.csv",names = ['UCA1 Curncy','Bid/Ask','Value'], parse_dates= ["UCA1 Curncy"])
df3 = pd.read_csv("Check1.csv")
pd.read_csv("Check2.csv")
u = list()
v = list()
w = list()
z = list()
t1 = datetime.timedelta(seconds=01)
len1 = len(df1.index)
len3 = len(df3.index)
r1 = df3.ix[:,0].tolist()
f1 = df1.ix[:,0].tolist()
f2 = df1.ix[:,0].tolist()
def main(z):
i = 1
global u
while i <= len3:
j = 1
while j <= len1:
if time.strptime(r1[i],'%m/%d/%Y %I:%M:%S %p').tm_year == time.strptime(f1[j],'%m/%d/%Y %I:%M:%S %p').tm_year and time.strptime(r1[i],'%m/%d/%Y %I:%M:%S %p').tm_mon == time.strptime(f1[j],'%m/%d/%Y %I:%M:%S %p').tm_mon and time.strptime(r1[i],'%m/%d/%Y %I:%M:%S %p').tm_mday == time.strptime(f1[j],'%m/%d/%Y %I:%M:%S %p').tm_mday and time.strptime(r1[i],'%m/%d/%Y %I:%M:%S %p').tm_hour == time.strptime(f1[j],'%m/%d/%Y %I:%M:%S %p').tm_hour and time.strptime(r1[i],'%m/%d/%Y %I:%M:%S %p').tm_min == time.strptime(f1[j],'%m/%d/%Y %I:%M:%S %p').tm_min and time.strptime(r1[i],'%m/%d/%Y %I:%M:%S %p').tm_sec == time.strptime(f1[j],'%m/%d/%Y %I:%M:%S %p').tm_sec :
u.append(f2[j])
#Above if statement compares year, month, day, hour, min, sec and AM/PM
j = j +1
for k in u:
v.append(k)
w = pd.DataFrame({'v'})
z.append(w[w.v>0].sum()/w[w.v>0].count())
i = i + 1
return z
所以来自&#34; UCA1 Ticks&#34;的代码值的第二部分的最终输出在#34; Check2.csv&#34;的第二列文件。当我运行这段代码(正在运行,你可以检查出来)我得到列表z的空输出。想知道为什么总会发生这种情况吗?我再次检查了我的缩进和代码,但似乎无法弄明白。请帮忙。
PS - &#34; UCA1 Ticks.csv&#34;中可能有多个条目。因此添加了一个for循环,取所有值之间的平均值。