Python 如何在csv文件中找到行之间的最小欧几里德距离并丢弃其中一行,直到我有特定的行数为止?
我有一个csv,有570795行,代表54个主题的特征。每个主题有不同的行数,即245014857等。现在我想为一个主题创建150行,并将其存储到单独的csv中。我的代码如下所示Python 如何在csv文件中找到行之间的最小欧几里德距离并丢弃其中一行,直到我有特定的行数为止?,python,Python,我有一个csv,有570795行,代表54个主题的特征。每个主题有不同的行数,即245014857等。现在我想为一个主题创建150行,并将其存储到单独的csv中。我的代码如下所示 df=pd.read_csv("input csv") print("input starting row") s = int(input()) print("enter ending row") e = int(input()) t_rows = s-e t
df=pd.read_csv("input csv")
print("input starting row")
s = int(input())
print("enter ending row")
e = int(input())
t_rows = s-e
t_rows = abs(t_rows)+1
if t_rows>150:
print("Rows are more than 150")
while t_rows>150:
store = list()
min = 100
for x in range(s,e):
df1 = df.iloc[x] #row start number used as index x
df2 = df.iloc[x+1] #plus 1 to access next index
df3 = np.linalg.norm(df2-df1) #euclidean distance
if df3<min:
min = df3
store.extend([x,x+1,min]) # add new items in list if min = df3
print(min)
print(store)
df = df.drop(store[-2]) #delete second last item of list store i.e. index number of row having least euclidean distance
t_rows-=1
if t_rows == 150:
break
e-=1
df=df[s:e]
df.to_csv(str(i)+".csv", index = False, header = None)
i+=1
df=pd.read\u csv(“输入csv”)
打印(“输入起始行”)
s=int(输入())
打印(“输入结束行”)
e=int(输入()
t_行=s-e
t_行=绝对值(t_行)+1
如果t_行>150:
打印(“行数超过150”)
当t_行>150时:
store=list()
最小值=100
对于范围内的x(s,e):
df1=df.iloc[x]#用作索引x的行起始号
df2=df.iloc[x+1]#加1访问下一个索引
df3=np.线性范数(df2-df1)#欧氏距离
如果df3