2017-07-31 50 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或類別爲空或兩個,位置應該等於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或null?選擇一個... –

+0

你能編輯你的文章以包含數據文本而不是圖片嗎?你還可以包括你認爲輸出應該是什麼樣子。 – piRSquared

回答

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 

所有其他行保持不變。

相關問題