例えば、次のようなデータフレームがあるとき、
python
1print(data.head()) 2 3 A B 44 X 123 55 Y 456 67 Z 789 78 Y 1011 89 X 1213 9
A列の値がXなら200、Yなら500、Zなら1000を閾値にして、B列の値が閾値未満なら0、以上なら1にB列を置換したいです。
python
1print(data.head()) 2 3 A B 44 X 0 55 Y 0 67 Z 0 78 Y 1 89 X 1
そこで次の様にしたのですが、上手くいきません。
python
1jyouken=Series([200,500,1000],['X','Y','Z']) 2print(jyouken) 3data.loc[data['B'] < jyouken[data['A']], 'B'] = 0 4data.loc[~data['B'] < jyouken[data['A']], 'B'] = 1 5print(data.head()) 6 7X 200 8Y 500 9Z 1000 10dtype: int64 11--------------------------------------------------------------------------- 12ValueError Traceback (most recent call last) 13 in 14---> 10 data.loc[data['B'] < jyouken[data['A']], 'B'] = 0 15ValueError: Can only compare identically-labeled Series objects
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 10:00