回答編集履歴

1

修正

2023/01/16 07:24

投稿

can110
can110

スコア38266

test CHANGED
@@ -1,14 +1,32 @@
1
+
1
- 以下のようにsort_valuesは列名なく列位置で指定できます。
2
+ 見出し行の有無がよく分かりませんが、以下のような感じで列名あるいは列位置で指定することができます。
2
3
  ```Python
3
- mport pandas as pd
4
+ import pandas as pd
4
5
  from io import StringIO
5
6
 
6
- s = """2,1,1,4,44
7
+ s = """nodenum1,nodenum2,nodenum3,throughput,usage
8
+ 2,1,1,4,44
7
9
  1,2,1,3,33
8
10
  1,1,2,2,22
9
11
  1,1,1,1,11"""
10
- df = pd.read_csv(StringIO(s), header=None)
11
12
 
13
+ # 見出し行(列名)も含めて読み込む場合
14
+ df = pd.read_csv(StringIO(s))
15
+ # 素直に列名で指定
16
+ df = df.sort_values(['nodenum1','nodenum2','nodenum3'])
17
+ print(df)
18
+ # 以下にて数値で列指定することも可能
19
+ df = df.sort_values(df.columns[[0,1,2]].tolist())
20
+ print(df)
21
+ # nodenum1 nodenum2 nodenum3 throughput usage
22
+ #3 1 1 1 1 11
23
+ #2 1 1 2 2 22
24
+ #1 1 2 1 3 33
25
+ #0 2 1 1 4 44
26
+
27
+ # 見出し行(列名)は読み込まない場合
28
+ df = pd.read_csv(StringIO(s), header=None, skiprows=1)
29
+ # 直接数値で列指定できる
12
30
  df = df.sort_values([0,1,2])
13
31
  print(df)
14
32
  # 0 1 2 3 4
@@ -17,5 +35,3 @@
17
35
  #1 1 2 1 3 33
18
36
  #0 2 1 1 4 44
19
37
  ```
20
-
21
-