質問編集履歴

2

解決した方法の追加をしました

2022/08/10 10:43

投稿

kouki_prog
kouki_prog

スコア2

test CHANGED
File without changes
test CHANGED
@@ -41,3 +41,18 @@
41
41
  DB Browser for SQLite 3.12.2
42
42
  Python3.9
43
43
  (MySQLへの移行は設定時にエラーが出て頓挫しました)
44
+
45
+ ### 解決した方法
46
+ Python側で処理しました。
47
+ Pandasで読み込んで、.str.extractで切り出して、不要な列はDropしました
48
+
49
+ ```Python
50
+ # ○個セットを一時的な列に切り出し
51
+ append_df['set_str'] = append_df['商品名'].str.extract('(?P<set_str>\*[0-9]{1,3}.{0,3}セット)', expand=True)
52
+ # ○の切り出し
53
+ append_df['セット数'] = append_df['set_str'].str.extract('(?P<セット数>[0-9]{1,3})', expand=True)
54
+ # ○個セットの列のDrop
55
+ append_df.drop('set_str', axis=1,inplace=True)
56
+ ```
57
+
58
+

1

試したこと、抽出したい文字列のパターンを追記しました

2022/08/10 01:27

投稿

kouki_prog
kouki_prog

スコア2

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,11 @@
7
7
 
8
8
  「電球 5個セット」→「5」
9
9
  「パソコン20台セット」→「20」
10
+
11
+ **追記
12
+ 抽出したい文字列:「1~3桁数字 + 1~2桁単位 + セット」**
13
+
14
+ **PostgreSQLにあるような、regexp_matches関数(正規表現パターンマッチの結果捕捉された全ての部分文字列のテキスト配列を返す関数)のような機能を求めています。**
10
15
 
11
16
  ### 発生している問題・エラーメッセージ
12
17
 
@@ -28,6 +33,10 @@
28
33
  等で検索しましたが、切り出すためのコマンド等は見つかりませんでした。
29
34
  Python側で一行ずつ抜き出して文字列処理する必要があるのでしょうか?
30
35
 
36
+ **追記
37
+ GLOB句、substrとinstrを調べてみましたが、数字と単位の桁数の組み合わせは指定できませんでした
38
+ 抽出したい文字列:「1~3桁数字 + 1~2文字単位 + セット」**
39
+
31
40
  ### 補足情報(FW/ツールのバージョンなど)
32
41
  DB Browser for SQLite 3.12.2
33
42
  Python3.9