Python 3.x 比较for循环内的百分比更改值
我有一个如下的清单 我想能够比较QQQ在9:35的百分比变化,同时与AAPL和AMD等其他股票进行比较。因此,检查9:35时AAPL的百分比变化是否大于9:35时QQQ的百分比变化。AMD在9点35分,9点40分,9点45分都是一样的 我想通过python实现这一点 这是我到目前为止所知道的,但并不完全正确Python 3.x 比较for循环内的百分比更改值,python-3.x,pandas,tkinter,yfinance,Python 3.x,Pandas,Tkinter,Yfinance,我有一个如下的清单 我想能够比较QQQ在9:35的百分比变化,同时与AAPL和AMD等其他股票进行比较。因此,检查9:35时AAPL的百分比变化是否大于9:35时QQQ的百分比变化。AMD在9点35分,9点40分,9点45分都是一样的 我想通过python实现这一点 这是我到目前为止所知道的,但并不完全正确 import pandas as pd import time import yfinance as yf import datetime as dt from pandas_datarea
import pandas as pd
import time
import yfinance as yf
import datetime as dt
from pandas_datareader import data as pdr
from collections import Counter
from tkinter import Tk
from tkinter.filedialog import askopenfilename
import os
from pandas import ExcelWriter
d1 = dt.datetime(2020, 8, 5,9,00,00)
d2 = dt.datetime(2020, 8, 5,16,00,00)
pc=Counter()
filePath=r"C:\Users\Adil\Documents\Python Test - ET\Data\Trail.xlsx"
stocklist = pd.read_excel(filePath)
for i in stocklist.index:
symbol=stocklist['Symbol'][i]
date=stocklist['Date'][i]
close=stocklist['Close'][i]
pc=stocklist['PercentChange'][i]
if (pc[i]>pc['QQQ']):
print(pc[i])
好,
我从一条评论中得到了一条解释OP想要什么的解释:
是的,所以我想看看在给定的5分钟时间内 该股表现优于QQQ 你需要做的第一件事,就是让它成为你可以按时间和符号查找信息的工具。以下是我将如何做到这一点:
my_data = {}
for i in stocklist.index:
symbol=stocklist['Symbol'][i]
date=stocklist['Date'][i]
pc=stocklist['PercentChange'][i]
my_data[symbol, date] = pc
这就形成了一个字典,您可以通过调用myu数据['ABCD','datetime']
然后,我会列出所有的时间
time_set = set()
for i in stocklist.index:
date = stocklist['Date'][i]
time_set.add(date)
times = list(time_set)
times.sort()
如果您需要计算机资源,您可以将这两个循环组合在一起运行,但我认为将它们分开会使代码更容易理解
然后对符号执行相同的操作:
sym_set = set()
for i in stocklist.index:
date = stocklist['Symbol'][i]
sym_set.add(date)
symbols = list(sym_set)
symbols.sort()
再一次,您可以在第一个for循环中创建这个集合,但是通过这种方式,您可以看到我们正在努力更好地完成什么
最后要做的是进行比较:
for i in times:
qs = my_data['QQQ', i]
for j in symbols:
if qs != 'QQQ':
which = "better" if my_data[j, i]>qs else "worse"
print(j + " did " + which + " than QQQ at " + i)
现在,这只是将信息打印到控制台,您应该用希望输出的方式替换print命令。(另外,我认为越高越好;我希望这是正确的。)请注意,SO不是按需编码的站点。你应该提供你的尝试()很抱歉没有代码发布,但我还没有取得很大进展,我不完全确定你想在这里做什么。你能在这里画出或解释一下你想要什么样的输出吗?我的最佳猜测是,你想要一个表格,显示某个股票在每个时间戳上的表现是否优于QQ?是的,所以我想看看在给定的5分钟时间内,某个股票的表现是否优于QQ感谢你的回答。因此,当我打印我的_数据[QQQ]时,我会得到这个错误键error:('QQQ',Timestamp('2020-08-05 10:00:00'))请确保从
my_data
调用条目的方式与您在其中输入条目的方式完全相同。我猜stocklist['Symbol'][i]
并没有给出确切的QQQ
或类似的信息?