我想从Quandl中导入两个时间序列,并希望找到它们之间的相关性。我发现了有关熊猫的信息,并尝试使用corr函数,但是我总是收到错误ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
,我真的不知道这段代码出了什么问题,我打印了数组,它们看起来还不错。
这是我的代码:
import pandas as pd
import quandl
quandl.ApiConfig.api_key = "XXX"
series1 = quandl.get("BUNDESBANK/BBK01_WT5511", start_date="2017-01-01")
series2 = quandl.get("FRED/DCOILBRENTEU", start_date="2017-01-01")
print(series1.corr(series2))
答案 0 :(得分:0)
我遇到了同样的错误。事实证明,问题在于我如何传递 API 密钥。具体来说,为了避免在我使用的代码中暴露明文 API 密钥
api_key = pd.read_csv('API Key File', header=None)
读取我的 API 密钥,然后将其传递给 Quandl:
Quandl.ApiConfig.api_key = api_key
然后我得到了和你一样的错误:DataFrame 的真值不明确。
当我深入研究时,我意识到 pd.read_csv 是问题所在:type(api_key)
给出了一个对象,而不是一个字符串。因此,我切换到以下设置 API 密钥:
with open('API Key File') as f:
api_key = f.readline()
然后 type(api_key)
返回一个字符串,并且您上面的代码完全相同,然后没有错误。希望这会有所帮助!