我正在尋找基於在接下來的2行中看到的值在數據框中創建新列。具體來說,如果接下來的兩行中的任何值都低於4,那麼我希望當前行中的新值爲0(並且如果後兩行中的所有值都高於4,那麼我希望當前行中的新值爲1)。創建在熊貓數據框中跨行進行比較的新列
>>> df = pandas.DataFrame({"A": [5,6,7,3,2]})
>>> df
A
0 5
1 6
2 7
3 8
4 2
>>> desired_result = pandas.DataFrame({"A": [5,6,7,8,2], "new": [1,1,0,0,0]})
>>> desired_result
A new
0 5 1
1 6 1
2 7 0
3 8 0
4 2 0
在這裏可以看到,在「desired_result」的第一個值是1,因爲圖6和7位均爲> 4(和HTE邏輯同樣適用),直到第三行中的新的值變爲0,因爲當我們展望未來兩行(8,2),然後我們看到2是< 4,所以值變爲0.
我一直在嘗試使用apply函數,但我無法弄清楚如何傳遞下一個2行值作爲輸入。
我在這個網站上發現了很多有關跨欄比較的幫助,但無法弄清楚如何像我描述的那樣「向前看」。
感謝您的幫助!
我不知道第一數據幀與此有關。它並不相關。如果是這樣,不清楚A列中的值如何改變。 – Alexander
你說你想要發生什麼,如果有的話<4,如果所有的都是> 4,那麼怎麼辦? – DSM
@亞歷山大感謝您指出 - 我有一個錯字在我的問題,我已經修復了第一個數據框現在 – reese0106