python - 有没有办法在 DF 中找到一个列索引,它的整个值与使用 python 的另一列匹配
问题描述
请原谅我对python的拙见,所以重点是在同一个df中找到所有值都与column_1匹配的column_x索引,然后我可以使用drop从column_x中删除列直到最后df.drop(df [column_x:-1] )
有什么想法吗?
谢谢
##数据样本##
# A B C D
# 0 one 0 0
# 2 two 2 4
# 4 two 4 8
# 6 one 6 12
# 7 three 7 14
所以重点是找到哪些列值与A列匹配,在上述情况下是C列,因此C列将被删除,并且使用df.drop(df.columns [column C index:-1]之后的任何列) )
最终结果:
# A B
# 0 one
# 2 two
# 4 two
# 6 one
# 7 three
解决方案
idx = (df.values == df.iloc[:, 0].values[:, None]).all(axis=0)[1:].argmax() + 1
解释:
将所有列按元素与第一列进行比较。请注意,右侧为列值添加了额外的维度,以便 numpy 可以广播其值以进行比较。
(df.values == df.iloc[:, 0].values[:, None])
找到所有的列
True
(...).all(axis=0)
查找除第一个之外的第一个完全匹配列的索引。加 1 以补偿未使用的第一列
(...)[1:].argmax() + 1
推荐阅读
- c++ - QT实时图有闪烁问题
- reactjs - 反应:如何编辑表单?
- autodesk-forge - 从 dbId 或 externalid 获取属性值 - Autodesk Forge
- javascript - 我怎样才能让这个 JS 滑块每三秒自动播放一次
- android - 如何以编程方式在android中使用blktrace命令执行shell脚本?
- c++ - 使用具有二次迟到成本的 OR-Tools 求解 VRP
- vb.net - VB 用 NCalc 计算坐标
- spring-boot - SpringBoot/Angular 应用程序中的访客模式
- wildfly-18 - Wildfly-18 中打开的文件描述符过多
- sql - 如何使用sql查询在给定开始时间和结束时间的情况下查找骑行的持续时间