簡體   English   中英

有沒有辦法替換除熊貓數據框列中值的前 3 個實例之外的所有值

[英]Is there a way to replace all except the first 3 instances of a value in a pandas dataframe column

我有一個非常大的熊貓數據框,列是用戶,行是關於用戶的是/否問題。 所以數據框中的每個單元格都包含“是”或“否”。 我只想查看每列中的前 3 個“否”。 我已經用空字符串“”替換了數據框中的每個“是”。 如何在每列(針對每個用戶)中保留前 3 個“否”,並將其余部分替換為空字符串。 我以為我可以使用 df.replace() 中的 limit 參數來做到這一點,但我沒有找到任何很好的解釋來解釋它的作用,並且我自己嘗試它並沒有幫助。 提前感謝您的幫助。 我第一次在 Stack Overflow 上發帖,所以提前為我在問這個問題時犯的任何錯誤道歉。

初始:

用戶 1 用戶 2 用戶 3

預期輸出:

用戶 1 用戶 2 用戶 3

使用cumsum

df = pd.DataFrame({'User1': ['', 'no', 'no', 'no', 'no'], 
                   'User2': ['no', 'no', 'no', 'no', '']})

df[(df == 'no').cumsum() > 3] = ''

只是對@psarka 答案的補充,您的數據框是否包含“否”以外的值? 正如@Psarka 的回答不會刪除“否”以外的值。

暫無
暫無

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

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