我试图运行一个脚本来获取一些股票的数据。我试图获得的部分数据是流动性指标(称为Amihud流动性指标)。我自动化了脚本,但是当运行自动脚本时,我在大约15-20次成功返回后得到一个错误。 我如何解决这个问题?在
File "script.py", line 23, in <module>
return_data = function.get_data(row[1], row[0])
File "C:\Users\leon_\function.py", line 39, in get_data
print(np.nanmean(illiq))
File "D:\Anaconda3\lib\site-packages\numpy\lib\nanfunctions.py", line 916, in nanmean
avg = _divide_by_count(tot, cnt, out=out)
File "D:\Anaconda3\lib\site-packages\numpy\lib\nanfunctions.py", line 190, in _divide_by_count
return a.dtype.type(a / b)
AttributeError: 'int' object has no attribute 'dtype'
处理非流动性度量的代码部分:
^{pr2}$有人知道怎么解决这个问题吗?在
编辑:这是脚本文件
# Open File Dialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
# Load Spreadsheet data
f = open(file_path)
csv_f = csv.reader(f)
next(csv_f)
result_data = []
# Iterate
for row in csv_f:
return_data = function.get_data(row[1], row[0])
if len(return_data) != 0:
# print(return_data)
result_data_loc = [row[1], row[0]]
result_data_loc.extend(return_data)
result_data.append(result_data_loc)
if result_data is not None:
with open('resuls.csv', mode='w', newline='') as result_file:
csv_writer = csv.writer(result_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
for result in result_data:
# print(result)
csv_writer.writerow(result)
else:
print("No results found!")
简单的答案是,您的数据不是numpy数据类型。这可能是因为列不是完全数值(即不包含任何内容)。在
简而言之:
解决这个问题最快的方法是简单地将数据强制为numpy喜欢的数字类型。这可以通过pandas的
to_numeric
方法实现。在[我会将此作为注释,但鉴于篇幅,我不能]我觉得没有足够的信息来帮助您解决问题,在您的位置上,我会添加这些信息以确保我理解代码失败的原因,同时继续此过程以完成它。这样,您就可以处理失败的文件,并在获得结果的同时更正脚本。在
因此,根据回溯(谢天谢地,我们没有要求),错误发生在:
它试图调整返回值以匹配输入的}求和。它的编写假设
dtype
,可能是illiq
。在nanmean
(查看其代码)中,它已经对输入(在删除nan
)之后,tot
和计数元素{illiq
是一个数值numpy
数组(最好是float
数据类型,因为它必须处理floatnp.nan
)。在所以它大部分时间都是有效的,但在某些情况下失败了。在这些情况下,
^{pr2}$illiq
有什么不同?在看起来
stock_data
是dataframe
,输入是从单个series
派生的数组。我相信stock_data[name].to_num()
是从序列中获取数组的首选方法,尽管np.array(...)
在大多数情况下都可以工作。stock_data[name].values
也被使用。在我建议在此调用之前对}。试着找出问题案例中的不同之处。在
illiq
应用一些测试。至少检查shape
和{下面是一个产生此错误的简单情况:
当一个或多个值不是有效数字时,
pandas
经常创建对象数据类型系列。它可以包含字符串和None
值。在相关问题 更多 >
编程相关推荐