teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/10/17 11:03

投稿

meg_
meg_

スコア10987

answer CHANGED
@@ -23,4 +23,56 @@
23
23
  条件式を修正した場合でも、elifを使用しないとresが4と5のみになってしまいます。
24
24
  ifの使い方と条件式の書き方を学びましょう。
25
25
 
26
- [Pythonのif文による条件分岐の書き方](https://note.nkmk.me/python-if-elif-else/)
26
+ [Pythonのif文による条件分岐の書き方](https://note.nkmk.me/python-if-elif-else/)
27
+
28
+ ---
29
+ 【追記】
30
+ 手元で試した結果を追記します。こちらでは問題なさそうです。
31
+ ```Python
32
+ import pandas as pd
33
+
34
+ meal = pd.DataFrame({'meal_id':['1558','1778','1109','1885','1000','2581','1962','2290','2539','2707','1993','2664']})
35
+ print(meal)
36
+ # meal_id
37
+ #0 1558
38
+ #1 1778
39
+ #2 1109
40
+ #3 1885
41
+ #4 1000
42
+ #5 2581
43
+ #6 1962
44
+ #7 2290
45
+ #8 2539
46
+ #9 2707
47
+ #10 1993
48
+ #11 2664
49
+
50
+ def meal_cluster(x):
51
+ if x["meal_id"] == "1558" or x["meal_id"] == "2581" or x["meal_id"] == "2707":
52
+ res = 1
53
+ elif x["meal_id"] == "1778" or x["meal_id"] == "1962" or x["meal_id"] == "1993":
54
+ res = 2
55
+ elif x["meal_id"] == "1109" or x["meal_id"] == "2290" or x["meal_id"] == "2664":
56
+ res = 3
57
+ elif x["meal_id"] == "1885" or x["meal_id"] == "2539":
58
+ res = 4
59
+ else:
60
+ res = 5
61
+ return res
62
+
63
+ meal["meal_cluster"] = meal.apply(meal_cluster, axis=1)
64
+ print(meal)
65
+ # meal_id meal_cluster
66
+ #0 1558 1
67
+ #1 1778 2
68
+ #2 1109 3
69
+ #3 1885 4
70
+ #4 1000 5
71
+ #5 2581 1
72
+ #6 1962 2
73
+ #7 2290 3
74
+ #8 2539 4
75
+ #9 2707 1
76
+ #10 1993 2
77
+ #11 2664 3
78
+ ```

1

訂正

2021/10/17 11:03

投稿

meg_
meg_

スコア10987

answer CHANGED
@@ -20,7 +20,7 @@
20
20
  meal.head()
21
21
  ```
22
22
 
23
- 条件式を修正した場合でも、elifを使用しないとresが4と5のみになってしまます。
23
+ 条件式を修正した場合でも、elifを使用しないとresが4と5のみになってしまます。
24
24
  ifの使い方と条件式の書き方を学びましょう。
25
25
 
26
26
  [Pythonのif文による条件分岐の書き方](https://note.nkmk.me/python-if-elif-else/)