2 つの列に基づいて複数列のファイルを並べ替える必要があります。両方の列に浮動小数点数があり、最初の並べ替えは低いものから高いものへ、2 番目は高いものから低いものへと並べ替える必要があります。サンプルファイルは次のとおりです。
A B C D
AK 0.01 200.8 NY
DK 0.90 50.5 PHL
AB 0.0002 750.04 Port
GA 0.076 340.00 NY
したがって、最初に列 B を低から高に並べ替え、次に列 C で高から低に並べ替える必要があります。私が持っているコードには多くの時間がかかり、ラップトップが応答しなくなりますが、そうではないと思います。さらに、列Bを「逆」、つまり高から低にソートする方法がわかりません。コードは次のとおりです。
fh_in = open(res_file,'r')
res = [line.strip('\n').split('\t') for line in fh_in]##Line converted to list and read
res_list = list(res) ##List to hold results while pre-processing
res_list.sort(key= lambda x: (float(x[int(1)]),-float(x[2])))##Sort on Col A and B
print ('Sorted results:\n',res_list)
列 B を高から低に並べ替えて、両方の列を並べ替えるにはどうすればよいですか? 複数のファイルがあり、各ファイルには 25,000 行 * 50 列があるため、これを達成するための最速の方法は何でしょうか?
あなたの助けを本当に感謝します.
-AK-