Я читаю в CSV для данных в Python.У меня есть DateTimeIndex и два интересующих меня столбца, давайте назовем их number и upper_limit.Я сортирую по индексу, удаляю ненужные столбцы и строки, принадлежащие старым временным меткам.Затем я вычисляю min, max и avg для обоих столбцов с помощью
numbercol = pd.to_numeric(df.iloc[:,0], errors='coerce')
upperlimitcol = pd.to_numeric(df.iloc[:,1], errors = 'coerce')
. Это прекрасно работает.Теперь я хочу проверить, как часто число больше, чем upper_limit, с помощью
for dt in df.index:
if numbercol[dt] >= upperlimitcol[dt]:
overshoots += 1
Но я получаю
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Я добавил оператор печати, чтобы увидеть значение столбца number и upper_limitдля каждого dt
, и получается, что после 1800 строк значения в ячейках больше не являются числами, а выглядят так (это то, что мне дают для print(numbercol[dt])
)
DateTime
2017-01-14 NaN
2017-01-14 3018.0
Name: Number, dtype: float64
Тип numbercol[dt]
также изменяется с <type 'numpy.float64'>
на <class 'pandas.core.series.Series'>
Я исследовал файл в текстовом редакторе, а также в Libre Office и Excel, но не увидел никакой разницы между этой строкой илиния до.У вас есть идеи, почему это может быть?