python - 如何将 DataFrame 的行数限制为特定列中的第 X 个唯一值?
问题描述
例如,我们有以下 DataFrame:
A B
1 2
1 2
2 3
3 4
4 5
4 2
我们会知道我们想要在 A 列中有 x(比如 3)个唯一值。那么所需的输出将是:
A B
1 2
1 2
2 3
3 4
我考虑循环遍历有问题的列,通过跟踪并获取具有正确索引的 DataFrame 子集来计算唯一值的数量。我仍然是 Python 的新手,我相信会有更有效的方法来做到这一点,请分享您的解决方案。赞赏!
解决方案
您可以尝试series.factorize
哪些索引从 0 开始的唯一值,然后选择 <= n-1 的值(因为索引从 0 开始),因此也保留订单:
n=3
df[df['A'].factorize()[0]<=n-1]
A B
0 1 2
1 1 2
2 2 3
3 3 4
推荐阅读
- json - JSON unmarshal 不在我的代码中输出,在 goplayground 中工作
- javascript - 使用主按钮和自身切换所有复选框
- python - 用装饰器参数装饰一个类
- sql-server - 如何工作节点通过 SPARK 中的 SSH 连接 SQL Server
- python - Python 数据转换 If df[column] = "A" then df[column] = 1 - (将 "A" 替换为 1)
- android-studio - 模拟器:警告:setGeometry:无法设置几何
- r - 在 R 中调用 names() 时不要打印任何内容
- c# - 单击卡片的提交按钮后如何恢复瀑布聊天机器人?
- java - openjdk 9 的 InvalidAlgorithmParameterException
- java - 将数组作为参数传递给类