不能返回pandas数据帧中位置0-3的值索引

问题描述 投票:0回答:1

这对我来说似乎很奇怪。我有一个运行文本文件的脚本,并且大部分工作正常,但少数文件使脚本抛出错误。文件中的数据如下所示

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时,这些第一个位置的值似乎并不重要。

真的难倒,所以任何帮助赞赏!

python-3.x pandas indexing
1个回答
1
投票

当你处理一个空数组时,就会触发该错误,即结果

df[df['Time (s)'] == start]

是一个空数组

© www.soinside.com 2019 - 2024. All rights reserved.