【发布时间】:2019-02-20 05:23:24
【问题描述】:
我是 Python 新手(4 周),刚刚开始使用 Pandas 和 api 获取请求。我将 api 数据提取到 pandas 数据框中,并尝试对 DataFrame 的不同列(即开盘、高点、低点、收盘、成交量)中的财务数据执行基本数学运算。
我编写了以下代码(注意:参数和api请求url不是逐字记录的,它们返回的是按列分隔的正确数据集):
import requests
import json
import pandas as pd
payload = {"key": "value"}
response = requests.get("URL", params=payload)
api_data = json.loads(response.text)
data = pd.DataFrame(api_data)
current_day_delta = data['close'].iloc[-1] - data['open'].iloc[-1]
print(current_day_delta)
TypeError: 不支持的操作数类型 -: 'str' 和 'str'
如何设置代码来计算 current_day_delta,没有错误?
【问题讨论】:
-
错误提示您不能从字符串中减去 sting。这意味着 `data['close'].iloc[-1]' 是字符串。请检查两列的数据类型。
-
您好,print(type(data['close']))
('open' 列相同) -
Also, a sample return of print(data['close']): 540 3659.04000000 541 3665.18000000 542 3680.06000000 543 3631.05000000 544 3631.46000000 545 3609.40000000 546 3590.56000000 547 3602.47000000 548 3618.41000000 549 3667.58000000 550 3898.60000000 551 3888.02000000 Name:关闭,长度:552,数据类型:对象
-
你能做以下吗? 1. 打印 data.head() 以查看前五列。 2. 如果它显示正确的列,则打印出您要用于减法的值。那是 print data['close'].iloc[-1] 和其他列相同。然后发布结果。另外,您使用错误的方式打印出熊猫列的数据类型。正确的方法是 data['close'].dtype 或类似的东西。
-
打开列在位置 [-1] 产生 3897.35000000 在位置 [-1] 关闭列产生 3898.11000000
标签: python-3.x pandas