前提・実現したいこと
現在、アンケートベースのデータをクレンジングしています。
そこで好きな商品を聞く質問で、
数字ごとにマスターから商品を当てはめていきたいのですが、
二桁の数字、例えば12の時に1, 2, 12の三つに数字を認識してしまい、
3つの数字全てでフラグが立ってしまいます。
これを12だけでフラグ立てしたいです。
該当のソースコード
Python
1def shampoo13 (row): 2 if '12' in row: 3 return 1 4 else: 5 return 0 6 7data['shampoo13'] = data['a4'].apply(shampoo13)
data['a4']は
0 12 1 2 2 1 3 4 4 0;1;2;3;4;5;6;7;8;9;10;11;12;13;14 ... 123878 7 123879 12 123880 12 123881 14 123882 7 Name: a4, Length: 1123883, dtype: object
となっており、
現状の結果は、
最初の列(12が回答として得られている)で
1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 _1 1_ 0 0 0 0 0 0 0 0 0 0 0 0
のようになっていて、理想の結果は
1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 0_ 0_ 0 0 0 0 0 0 0 0 0 0 0 0
です。
宜しくお願い致します。
quiquiさんにご指摘頂いた 1 2 のコードは
Python
1def shampoo2(row): 2 if '1' in row: 3 return 1 4 else: 5 return 0 6 7data['shampoo2'] = data['a4'].apply(shampoo2) 8 9def shampoo3(row): 10 if '2' in row: 11 return 1 12 else: 13 return 0 14 15data['shampoo3'] = data['a4'].apply(shampoo3)
です。
###試してみたこと
"%02d" %を入れてみて、
Python
1def shampoo13 (row): 2 if '"%02d" %12' in row: 3 return 1 4 else: 5 return 0 6 7data['その他市販'] = data['a4'].apply(shampoo13)
のようにもしてみましたが、
逆に12にフラグが立たなくなってしまいました。。。
何卒お力添え宜しくお願い致します。
回答4件
あなたの回答
tips
プレビュー