回答編集履歴
1
CSVファイルの1行目がヘッダー行の場合を例として修正。文中の表現も修正。
answer
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
2列目の「コスト」が文字列で扱われ、辞書順でソートされている為ですね。
|
1
|
+
2列目のデータ項目「コスト」部分が文字列で扱われ、辞書順でソートされている為ですね。
|
2
2
|
以下のようなコードではいかがでしょうか。2列目を整数に直してからソートするようにします。
|
3
|
+
また、CSVファイルの1行目はヘッダー行であることを前提とします。
|
3
4
|
|
4
5
|
```Python3
|
5
6
|
# coding:utf-8
|
@@ -9,16 +10,19 @@
|
|
9
10
|
# ファイルの読み込み
|
10
11
|
file = csv.reader(open('default.csv'), delimiter=',')
|
11
12
|
|
13
|
+
# 1行目にヘッダーが存在する場合、nextで読み飛ばす
|
14
|
+
header = next(file)
|
15
|
+
|
12
16
|
rows = [[row[0], int(row[1])] for row in file]
|
13
17
|
|
14
18
|
# 2列目でソート
|
15
19
|
result = sorted(rows, key=operator.itemgetter(1))
|
16
20
|
print(result)
|
17
21
|
```
|
18
|
-
|
19
22
|
上記ファイルをt1.py とした、実行結果です。
|
20
23
|
```bash
|
21
24
|
$ cat default.csv
|
25
|
+
出発_中間点,コスト
|
22
26
|
1_1,10
|
23
27
|
1_2,1
|
24
28
|
1_3,5
|