0
我正在尋找一種有效的方法(如果可能,無需循環/迭代)使用輸入a和b來獲取我的輸出。 a是一個隨機數組,b是數組,它定義了重置點。有條件地重置熊貓數據幀中的數據
a = pd.DataFrame([2, 5, 4, 1, 6, 6, 4, 7])
b = pd.DataFrame([1, 0, 0, 1, 0, 0, 1, 0])
輸出:
[2, 2, 2, 1, 1, 1, 4, 4]
我正在尋找一種有效的方法(如果可能,無需循環/迭代)使用輸入a和b來獲取我的輸出。 a是一個隨機數組,b是數組,它定義了重置點。有條件地重置熊貓數據幀中的數據
a = pd.DataFrame([2, 5, 4, 1, 6, 6, 4, 7])
b = pd.DataFrame([1, 0, 0, 1, 0, 0, 1, 0])
輸出:
[2, 2, 2, 1, 1, 1, 4, 4]
可以簡單地用b
爲一個布爾數組,然後索引填充NaN
值,在這種情況下以正填充(ffill
法):
a[b.astype(bool)].fillna(method='ffill')
對於fillna
文檔,請參閱:http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.fillna.html
優秀。非常感謝。 –
除此之外:如果'a'和'b'與數組類似,它們可能是'Series'對象而不是'DataFrame'對象。 – DSM
是的,他們實際上是時間系列。但它們是具有多個這樣的列的數據框的一部分。 b實際上是對特定列與其前一個數字進行比較以檢查某個條件的結果。實際的問題有點複雜,所以我試圖讓自己的問題保持在被卡住的地步,其餘的我都能夠找到答案。但是對於像上面這樣簡單的問題來說,它與Series相比更有意義。 –