python - 如何根据熊猫中的多列条件删除行?
问题描述
假设我有以下熊猫数据框:
df = pd.DataFrame({"#":['a','a','a','a','b','b','b','c','c','d','d'],
"$":[8,5,7,20,4,6,10,8,8,9,9],
"C":[0,1,2,3,1,0,2,1,0,1,0]})
# $ C
0 a 8 0
1 a 5 1
2 a 7 2
3 a 20 3
4 b 4 1
5 b 6 0
6 b 10 2
7 c 8 1
8 c 8 0
9 d 9 1
10 d 9 0
我希望删除“#”中的值在 C 列中只有 0 或 1 对应的行,在这种情况下,删除带有 0 的行并保留带有 1 的行。所以在我的情况下,只有值 c 和 d从 # 列开始,C 列中只有 0 和 1。因此,我必须删除 c 和 d 在 c 中为 0 的行并保留 1。我不能对 a 和 b 执行相同操作,因为它们映射到 0 以外的其他值和 C 中的 1。它只能是 0 和 1。
通过尝试多种方法,我偶然发现了这个可行的解决方案。
df.groupby(['#','$'], as_index=False)['C'].agg({'C':'max'})
但是,我无法使用此选项,因为在我的真实数据集中,我有多个包含空值的列,并且分组在我的情况下不起作用。因此,我正在寻找不同的解决方案。
解决方案数据框将如下所示:
# $ C
0 a 5 1
1 a 7 2
2 a 8 0
3 a 20 3
4 b 4 1
5 b 6 0
6 b 10 2
7 c 8 1
8 d 9 1
解决方案
推荐阅读
- bash - Bash 变量未更新
- asp.net-core - 当应用程序是网站的一部分时,ASP.NET CORE 不呈现 ViewComponents
- mysql - PostgreSQL 将对选定表的更改复制到另一个断开连接的实例
- authentication - 谷歌脚本:编辑无法保存工作表侧边栏中的数据
- python - 为什么我不能使用 Python 抓取那个大的 XML 文件?
- html - 页脚在移动浏览器上被截断
- django - 通过django中的下拉列表设置变量
- ruby-on-rails - 如何调整条件以在 Rails 中为实例方法传递符号?
- sql - SQL 查询创建重复的结果
- altair - 将列表中的一系列图连接到复合图?