Python 如何在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

我有一个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_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