我有以下格式的巨大CSV文件(约700,000条记录)
t,X,Y
0.00065,0,10
0.000795,0,12
0.039068,2,13
0.03913,4,17
0.039901,4,10
0.039925,5,21
0.039945,6,22
0.039961,7,25
0.040875,9,27
0.040915,9,31
0.041167,11,33
0.041203,12,34
0.139602,6,41
0.139687,13,87
0.139727,13,87
从第2列和第3列中,我想读取当前行并将其与上一行的值进行比较。如果更大,则我要取当前值与前一个值的差,并将差值存储(append
)到列表中。如果当前值等于上一行的值,则继续比较。
这是我使用numpy
import numpy as np
import pandas as pd
import csv
import scipy.stats
import matplotlib.pyplot as plt
np.set_printoptions(threshold=np.inf)
column2 = []
column3 = []
with open("test_ground_data.csv", mode='r', encoding='utf-8-sig') as f:
reader = csv.reader(f, delimiter=",")
headers=next(reader) #skip the columns
for i in reader:
column2.append(int(i[1]))
column3.append(float(i[2]))
column2_diff = np.diff(column2)
column3_diff = np.diff(column3)
column2_diff = column2_diff[column2_diff > 0]
column3_diff = column3_diff[column3_diff > 0]
inc_value2=np.median(column2_diff[column2_diff>0])
inc_value3=np.median(column3_diff[column3_diff>0])
fig, ax = plt.subplots()
ax.plot(column2_diff, label='Column2')
ax.plot(column3_diff, label='Column3')
ax.set_xlabel("t")
ax.set_ylabel("Values")
legend = ax.legend(loc='best', shadow=False, fontsize='x-large')
但是,由于文件很大,带有模式-我想使用column2
在column3
和k-nearest neighbor
之间进行分类。我们如何使用KNN
来做到这一点?但是,由于我是KNN
的新手,所以我们将为您提供任何帮助。