実現したいこと
Python初心者です。お願いいたします。
下記の様な「区分」と「品名」を持ったpandasのデータフレームで「区分」の条件に
合った時に「品名」から数字を取り出して「結果」columnsを作成したいです。
例えば「区分」にある文字が含まれている時に「品名」から条件に合った数字を
取り出して「結果」を作成します。
区分 品名 結果
101:一般品 SSS-1700R 1700
103:CC CCC-120-XXX 120
110:GG GGGGGGG-2500X600L 2500
| | |
発生している問題・分からないこと
私はforで繰り返しで1件づつ処理をした方がいいのかと思うのですが、上手く処理出来ない
(記述方法が分からない)でいます。
該当のソースコード
for Kubun in df["区分"]: if Kubun.str.contains("GG"): df["間口"] = df["品名"].str.extract('(?<=-)(.+)(?=X)') elif Kubun.str.contains("一般"): df["間口"] = df["品名"].str.extract('(?<=-)(\d+)(?=\w?)') elif Kubun.str.contains("CC"): df["間口"] = df["品名"].str.extract('(?<=-)(\d+)(?=\w?)')
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
for以外の書き方があるのかも知れませんが、どの様に記述していいかわからず困っています。
補足
「一般」「CC」は同じ正規表現になっていてもっと効率的な記述方法があると思いますが、
例なので許してください。
根本的に考え方が違うのかも知れませんが、その辺りも指摘していただけると嬉しいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/12/16 09:29