У меня есть CSV-файл следующего формата
86,1
15,2
19,3
52,4
15,5
13,6
18,7
20,8
49,9
266,10
Для воспроизводимости я включил полный файл CSV здесь . Из столбца 1 я хотел прочитать текущую строку и сравнить ее со значением предыдущей строки. Если оно больше, я хотел бы взять разницу текущего значения от предыдущего и сохранить (append
) разницу в списке. Если текущее значение равно значению предыдущей строки, продолжите сравнение. Позвольте мне прояснить это. Например, в приведенном выше примере записи, которую я предоставил, третья строка (19
) больше, чем значение во второй строке (15
) - так будет (19-15 =4
), четвертый ряд (52-19 = 33
) и т. д.
Вот мой простой подход с использованием numpy
import numpy as np
import pandas as pd
import csv
df = pd.read_csv("testdata.csv")
with open("testdata.csv") as f:
reader = csv.reader(f, delimiter=",")
for i in reader:
print (i[0])
diffs=np.diff(i[0])
increased_value=np.median(diffs[diffs>0])
Однако я получаю сообщение об ошибке IndexError: list assignment index out of range
. Как я могу исправить эту ошибку, чтобы решить задачу, которую я упомянул?