[英]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.