繁体   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