python - .pct_change() 在无限循环中从一个空数据帧开始
问题描述
我正在尝试获得 2 列的输出。第一列“收盘价”应该是从网络请求的实际股票价格。我已经得到了这个
第二列“变化”应该是第一列中价格之间的百分比变化。当然总是与上一行比较。
需要改变什么才能得到这个?
from bs4 import BeautifulSoup
import requests
import pandas as pd
def priceTracker():
url = "https://finance.yahoo.com/quote/AAPL?p=AAPL"
response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")
price = soup.findAll("div", {"class": "D(ib) Mend(20px)"})[0].find("span").text
return (price)
results = []
i = 1
while i == 1:
results.append(priceTracker())
df = pd.DataFrame(results)
df.columns = ["close"]
if len(df.index) >5:
print(df.tail(3))
#print(df["close"].pct_change()) --> NOT WORKING
解决方案
您需要将数据类型更改为在关闭列上浮动。
while i == 1:
results.append(priceTracker())
df = pd.DataFrame(results)
df.columns = ["close"]
df['close'] = df['close'].astype('float') #<<<<<<<added this
if len(df.index) >5:
print(df.tail(3))
#print(df["close"].pct_change())
推荐阅读
- java - Crypt Kicker 算法和解决方案,出了什么问题?
- c# - 从数据库中检索值时内存使用率高
- html - 将图像添加到 sqlite studio Ionic
- python-3.x - Python 3.6 ModuleNotFoundError:没有名为“pyttsx3”的模块
- linux - 为什么数据包的网络层处理发生在内核空间而不是 NIC 上?
- shell - 有什么方法可以验证输出我是否得到正确的输出
- c - 使用 MQOPEN 方法 PRO*C 调用远程 mq 时出现 mqrc 2018 错误
- json - USQL 调用无键读取 json 数组
- azure - Get-AutomationConnection 无法按照 MS Docs 工作
- javascript - 滚动顶部在 angular2 中无法正常工作