【发布时间】:2019-06-18 03:49:53
【问题描述】:
我有一个以下格式的 CSV 文件
86,1
15,2
19,3
52,4
15,5
13,6
18,7
20,8
49,9
266,10
为了重现性,我已经包含了完整的CSV file here。从第 1 列开始,我想读取当前行并将其与前一行的值进行比较。如果它更大,我想获取当前值与前一个值的差值并将 (append) 差值存储在列表中。如果当前值等于前一行的值,则继续比较。说明一下第四行(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。如何解决此错误以解决我提到的任务?
【问题讨论】:
-
您的 csv 文件中有空行吗?
-
否,CSV 文件中没有空行。
标签: python python-3.x pandas csv numpy