这对我来说似乎很奇怪。我有一个运行文本文件的脚本,并且大部分工作正常,但少数文件使脚本抛出错误。文件中的数据如下所示
start time = 0.016000
Time. Col1. Col2
0.000000. 0.00000 0.000000
0.016000. -0.40000. -0.500000
0.031000. -8.40000. -8.900000
0.047000. -8.72000. -8.770000
0.062000. -8.730000. -8.970000
脚本需要做的事情之一是找到开始时间并返回Col2中的值。
我找到一个正则表达式的开始时间,并检查一个总是正确的打印语句,所以我很满意这部分。
start = float(reg expression...)
print (start)
然后我需要找到开始时间的索引来从col2获取值
data_start = df[df['Time'] == start].index.item()
我注意到的是(使用上面的数据)如果我的开始时间是在0-3位置(即0.0000,0.016000,0.031000或0.047000)我得到以下错误
data_start = df[df['Time (s)'] == start].index.item()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/core/base.py", line 719, in item
return self.values.item()
ValueError: can only convert an array of size 1 to a Python scalar
但是如果开始时间位于相同脚本的位置4(即在这种情况下为0.062000),则返回索引并且脚本完美地执行。我通过手动编辑一些数据txt文件中的开始时间来确认这一点。实际上,出现ValueError时,这些第一个位置的值似乎并不重要。
真的难倒,所以任何帮助赞赏!
当你处理一个空数组时,就会触发该错误,即结果
df[df['Time (s)'] == start]
是一个空数组