![](/img/trans.png)
[英]How do I replace pandas rows with values of another dataframe for all instances of the value in the first df?
[英]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.