実現したいこと
python初心者です。いつもお世話になります。よろしくお願いいたします。
pandasでセルの内容に応じて辞書のキーでセルを置換する処理をしたいです。
発生している問題・分からないこと
下記のソースコードで「区分」に辞書「T_d」の該当する値をcolumns「奥行」に入れたいです。
「奥行」には現時点で数値が入っているので「区分」が該当する時のみ値を書き換えたいですが
私が書いたコードでは下記のエラーが発生します。
エラーメッセージ
error
1TypeError: Cannot setitem on a Categorical with a new category (970), set the categories first
該当のソースコード
品名 区分 奥行 AAAA200QCCCC1 Q 600 AAAA250EBBBB1 E 970 AAAA150DAAAA1 D 970 AAAA200LBBBB2 L 650 AAAA300TVVVV1 T 750 AAAA400RRRRR1 R 650 #(この「奥行」には成功した時の値が入っています) T_d = {"E":970,"D":970,"K":650,"L":650,"P":600,"Q":600,"R":650,"S":650,"T":750,"U":750} for T_k,T_v in T_d.items(): df_a = df_a.mask((df_a["区分"] == T_k),T_v)
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
申し訳ありません。他に方法が思いつかないために他の方法は試していません。
補足
現在は「品名」の8文字目を「区分」に抜き出してその後「奥行」の値を置換しようとしています。
もし「品名」の8文字目と辞書のキーを直接比較して「奥行」の値を置換する簡潔な方法が
あれば同時に教えていただけると大変嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/12/25 05:37