前提・実現したいこと
3行数列あるようなデータセットにおいて、変数1(col1)の値を変数2(col2)と変数3(col3)の値により出力結果を制限したい。
下記のようなdfがあり、col2とcol3両方が1以上の時、col1の値を0にしたいと考えています。
理想の出力結果は、[0,1,2,3,4,0,6,0,0,9,10]です。
しかし今回の方法では、col2とcol3どちらかが0であるとcol1が0になってしまいます。
そのため出力結果は、[0,1,0,3,0,0,0,0,0,9,10]になってしまいます。
何か良いアイディアがありましたらご教授お願いします。
該当のソースコード
Python
1import pandas as pd 2 3df = pd.DataFrame({'col1':[0,1,2,3,4,5,6,7,8,9,10], 4 'col2':[3,0,0,0,3,3,0,3,3,0,0], 5 'col3':[1,0,1,0,0,1,1,1,1,0,0]}) 6df = df['col1'].where((df['col2'] < 3) & (df['col3'] < 1),0) 7 8print(df)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/24 00:30