使用Refinitiv API的eikon包时,无法从元组提取数据计算
问题解决:Refinitiv Eikon API 返回元组导致计算错误
问题根源
ek.get_data() 方法的返回值是一个元组,结构为 (pandas.DataFrame, None),其中第一个元素是包含股票数据的DataFrame,第二个元素是状态信息(此处为None)。直接对整个元组test进行打印或计算操作,会触发元组相关错误。
解决方案
先从元组中提取出DataFrame,再进行后续计算,有两种常用方式:
方式1:解构赋值(推荐)
调用get_data时直接拆分元组,单独获取DataFrame:
# 获取数据并拆分元组 df, _ = ek.get_data(['IBM','AAPL.O'],['TR.DPSmean','TR.PriceClose']) # 查看提取后的DataFrame print(df) # 执行计算:Price Close / Dividend Per Share - Mean df['Price/DPS Ratio'] = df['Price Close'] / df['Dividend Per Share - Mean'] print(df)
方式2:通过索引提取
如果结果已存储在test变量中,直接通过索引[0]获取元组内的DataFrame:
# 从已有的test元组中提取DataFrame df = test[0] # 执行计算 df['Price/DPS Ratio'] = df['Price Close'] / df['Dividend Per Share - Mean'] print(df)
执行结果示例
运行上述代码后,会得到包含计算列的DataFrame:
Instrument Dividend Per Share - Mean Price Close Price/DPS Ratio 0 IBM 6.675 140.88 21.105618 1 AAPL.O 0.97507 132.23 135.610775
内容的提问来源于stack exchange,提问作者Hugo MISZCZAK
相关产品推荐
相关产品推荐

