下面是我的数据。
sprintf 'file_name_%s_%s.txt', $date, $code
我想按以下特定顺序对数据进行排序:“ 0A”,“ 1A”,“ 0B”,“ 1B”,“ 1C”。我可以使用sort_index。但这给了我升序排序的数据(0A,0B,1A,1B,1C)。
我应使用哪个函数按特定顺序对这些数据进行排序?
答案 0 :(得分:1)
无需对字典进行硬编码,您可以尝试此操作。第一行通过解析TX1
创建两列TX2
和TX
,然后使用sort_values
对其进行排序。另外,我删除了我创建的列。该部分是可选的:
df = pd.concat([df, df.TX.apply(lambda s: pd.Series({'TX1': s[1], 'TX2':s[0]}))], axis=1)
df.sort_values(['TX1','TX2'], ascending = [True, True]).drop(['TX1','TX2'], axis=1)
TX Subj W1 W2 W3 W4
5 0A C4 39.6 39.8 42.9 43.4
6 0A B4 42.7 41.4 44.1 43.9
8 0A D7 23.4 26.3 29.7 29.4
1 1A B12 22.5 22.2 21.9 22.6
2 1A B10 22.4 22.1 21.6 22.9
7 1A C6 31.5 31.8 34.4 33.4
9 1A D2 31.6 27.8 30.2 30.5
12 1A C5 27.5 28.1 29.1 28.4
0 0B C2 33.1 32.9 35.6 35.9
4 0B C1 30.7 32.1 35.4 36.1
3 1B A6 28.7 29.1 28.6 29.8
10 1B A20 21.7 21.8 22.3 23.7
11 1C A1 34.7 34.8 34.6 38.3