質問編集履歴
2
表記の変更、試したことの追加、質問内容の絞り込み
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
|
-
i
|
89
|
+
df.insert(3, "サイズ", 0)
|
100
90
|
|
101
|
-
df =
|
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
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
|
|