質問編集履歴

1

具体的なコードの記入。漠然な文章を具体的なものに変更。

2020/07/01 12:41

投稿

Chileno
Chileno

スコア7

test CHANGED
File without changes
test CHANGED
@@ -2,17 +2,35 @@
2
2
 
3
3
 
4
4
 
5
- 以下通り今までexcelで行っていた作業をpandasいたいと考えています
5
+ 質問低評価をいただい改めて質問した内容を見ると漠然としてまし修正させていただきます。良方法があればご共有ただけますと幸いです。
6
-
7
- 1.文字列で詳細情報が入った列にフィルターをかける。
8
-
9
- 2.思いついたキーワードを使いソート。
10
-
11
- 3.そのキーワードが使えると判断した場合のみ新しい列(カラム名はキーワードとする)に記入。
12
-
13
- 4.複数の思いつきを試していき、使える場合のみ上で作ったキーワード列に記入する。
14
6
 
15
7
 
8
+
9
+ 実現したいこと:
10
+
11
+ DataFrameにおいて、商品名の列があり、そのグループ分けをしたいと考えています。
12
+
13
+ そしてグループ名を新しい列に追加し、後どれくらいの商品名がグループ化されていないかを確認しながら作業がしたいです。
14
+
15
+
16
+
17
+ グループ名としてふさわしいと考えている名称はそれなりの数量の商品をカバーできるものだと考えます。
18
+
19
+ グループ名作成の一例としては商品名の列に「靴」といキーワードが入った商品名が複数種類ある場合、
20
+
21
+ それが長靴であれ、革靴であれ靴であることには変わらないため以下のように対象を絞りました。
22
+
23
+
24
+
25
+ ```python
26
+
27
+ df1 = df[df['商品名']].str.contains('靴')]
28
+
29
+ df1['グループ名'] = '靴'
30
+
31
+ ```
32
+
33
+ 最終的にconcat()を使用し全てのグループ化されたdfを繋げます。
16
34
 
17
35
 
18
36
 
@@ -20,9 +38,9 @@
20
38
 
21
39
 
22
40
 
23
- いちいちフィルターしたキーワードを変数に代入して貯めていき最後にコンカチすると進捗状況(キーワード列の空白の数)分かりづらい上重複もしかねない。
41
+ ・作業進捗が確認できない。
24
42
 
25
-
43
+ ・キーワードの数だけdfを作成しないといけない。
26
44
 
27
45
 
28
46
 
@@ -30,9 +48,25 @@
30
48
 
31
49
 
32
50
 
33
- 通り大量を作ってキーワードをめこみ、コンカチする
51
+ 方法を取ると以下ように複数のdfを作ることになりました。
34
52
 
53
+ ```python
35
54
 
55
+ df1 = df[df['商品名']].str.contains('靴')]
56
+
57
+ df2 = df[df['商品名']].str.contains('服')]
58
+
59
+ df3 = df[df['商品名']].str.contains('帽子')]
60
+
61
+ df4 = df[df['商品名']].str.contains('ズボン')]
62
+
63
+ ##df5,6,7...と続く
64
+
65
+ ```
66
+
67
+ これだと発生している問題として書いた二点がネックとなり非効率だと感じています。
68
+
69
+ 他に良い方法があれば教えていただけると助かります。
36
70
 
37
71
  ### 補足情報(FW/ツールのバージョンなど)
38
72