簡體   English   中英

如何按列迭代特定記錄

[英]How to iterate over a particular record columnwise

我正在嘗試編寫一個場景,我需要按列迭代特定記錄但無法概括它。 下面是一個示例場景:

輸入數據

output 應該是:如果在記錄中,特定列值不是 null 且小於 0,則代碼應遍歷同一索引中的下一列值並查找出現的任何正值或 null 值,然后它應替換負值與該列值。

output 數據

所以基本上,在特定記錄中,如果任何單元格包含負值,則代碼應檢查同一記錄中的下一個單元格,並應繼續檢查,直到找到 null 或正值,並應將負值替換為該值。

希望情況清楚。 我已附上輸入和預期 output 數據以供參考。 我可以使用 iterrows 和 if, else 條件編寫代碼,但我想概括 n 列的代碼。 不可能寫 50 或 100 if else 條件。

先謝謝您的幫助。

我認為最簡單的方法是轉置。 假設 d 是您的 dataframe:

dummy = abs(max(d.max())) + 1
d = d.fillna(dummy) #Replace none with the dummy value
d[d < 0] = None #Replace negative values with none
d = d.transpose()
d = d.fillna(method="bfill") #Backfill NA's by pulling from next row (next column in the original dataframe)
d = d.transpose() #Transpose back
d[d == dummy] = None #put dummy value back to None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM