2017-07-31 1 views
0

enter image description here別の列の条件に基づいて列の値を置き換える方法は?

ソースデータフレーム:どのように私はパンダでこれを行うのですか、すべての行の

active position category 
1  1  NaN 
1  2  NaN 
1  1  a 
0  1  a 
0  1  a 
1  2  a 
1  1  b 
0  1  b 
1  2  b 

は、0またはカテゴリでアクティブな場合はnullであるか、両方が、位置は0に等しくすべきですか?

active position category 
1  0  NaN 
1  0  NaN 
1  1  a 
0  0  a 
0  0  a 
1  2  a 
1  1  b 
0  0  b 
1  2  b 
+0

これは累積合計の例です。新しいカテゴリの開始時にポジション値が加算されない –

+1

どういう意味ですか? 0 OR NULL?一つを選んでください... –

+0

画像ではなくデータのテキストを含むように投稿を編集できますか?また、出力がどのように見えるかを含めることもできます。 – piRSquared

答えて

1

1つの可能な解決策、IIUC。条件を満たすすべての行を0に設定します。

In [355]: df.loc[(df.active == 0) | (df.category.isnull()), 'position'] = 0; df 
Out[355]: 
    active position category 
0  1   0  NaN 
1  1   0  NaN 
2  1   1  a 
3  0   0  a 
4  0   0  a 
5  1   2  a 
6  1   1  b 
7  0   0  b 
8  1   2  b 

他のすべての行は変更されません。

関連する問題