質問編集履歴

2

表記の変更、試したことの追加、質問内容の絞り込み

2020/10/07 05:04

投稿

miraMirar
miraMirar

スコア10

test CHANGED
File without changes
test CHANGED
@@ -4,31 +4,17 @@
4
4
 
5
5
  以下のようなデータがあるとします。
6
6
 
7
+ |ブレンド|カフェラテ|カプチーノ|
7
8
 
9
+ |S| | |
10
+
11
+ | |M| |
12
+
13
+ | | |L|
14
+
15
+ | |S| |
8
16
 
9
17
 
10
-
11
-
12
-
13
- 1 ブレンド S
14
-
15
-
16
-
17
- 2 カフェラテ M
18
-
19
-
20
-
21
- 3 カプチーノ L
22
-
23
-
24
-
25
- 4 カフェラテ S
26
-
27
-
28
-
29
-
30
-
31
-
32
18
 
33
19
  サイズを数値に変換し、以下のような表になっています。ここまではExcelで作成されていて、csvで保存されています。
34
20
 
@@ -60,6 +46,8 @@
60
46
 
61
47
  ただこれだとスパースになってしまうので、以下のようにしたいです。
62
48
 
49
+ ブレンド:1 カフェラテ:2 カプチーノ:3 に置換して
50
+
63
51
 
64
52
 
65
53
  種類 サイズ
@@ -90,17 +78,23 @@
90
78
 
91
79
 
92
80
 
81
+ 最初のデータでは3列のうち1列にしか値が入っていないので、「サイズ」の列については3つの列の合計を入れるようにしてみました。
82
+
93
- なにも思つかずとりあえずデータを読み込んだところ止まっていま
83
+ (insertを使ってるのは3列目以降に別のカテゴリの同じようなデータがあるためです
94
84
 
95
85
 
96
86
 
97
87
  ```python3
98
88
 
99
- import pandas as pd
89
+ df.insert(3, "サイズ", 0)
100
90
 
101
- df = pd.read_csv("testdata.csv")
91
+ df["サイズ"] = df["ブレンド"]+df["カフェラテ"]+df["カプチーノ"]
92
+
93
+
102
94
 
103
95
  ```
96
+
97
+ 「種類」の列については、新しい列を作って「ブレンド」の列が0以外なら1, 「カフェラテ」の列が0以外なら2, 「カプチーノ」の列が0以外なら3を入れたいです。
104
98
 
105
99
 
106
100
 

1

2020/10/07 05:04

投稿

miraMirar
miraMirar

スコア10

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- サイズを数値に変換し、以下のような表になっています。
33
+ サイズを数値に変換し、以下のような表になっています。ここまではExcelで作成されていて、csvで保存されています。
34
34
 
35
35
 
36
36
 
@@ -90,7 +90,17 @@
90
90
 
91
91
 
92
92
 
93
+ なにも思いつかず、とりあえずデータを読み込んだところで止まっています。
94
+
95
+
96
+
97
+ ```python3
98
+
93
- 初心者でなにも思いつきません。
99
+ import pandas as pd
100
+
101
+ df = pd.read_csv("testdata.csv")
102
+
103
+ ```
94
104
 
95
105
 
96
106