python - 如果值不是升序python,则删除列
问题描述
给定这样的数据:
象征 | 一 | 二 |
---|---|---|
1 | 28.75 | 25.10 |
2 | 29.00 | 25.15 |
3 | 29.10 | 25.00 |
我想在所有行中按升序删除没有其值的列(尽管我想允许有间隙)。在这种情况下,我想删除列'Two'。我尝试以下代码但没有运气:
df.drop(df.columns[df.all(x <= y for x,y in zip(df, df[1:]))])
谢谢
解决方案
当忽略 s之后的值相差 1 滞后 ( ) 时,删除那些给出至少一个 ( any
) 负值 ( ) 的列:lt(0)
diff(1)
NaN
dropna
columns_to_drop = [col for col in df.columns if df[col].diff(1).dropna().lt(0).any()]
df.drop(columns=columns_to_drop)
Symbol One
0 1 28.75
1 2 29.00
2 3 29.10
推荐阅读
- android - 后台定位服务的电池消耗问题
- hana - 我可以更改我的应用程序在 SAP Web IDE for HANA 中运行的端口吗?
- android - 如何调试设备所有者/设备管理应用程序?
- arrays - React Native 中的数组渲染(未定义不是对象)
- google-apps-script - 是否有使用 Google-Apps-Script 在 Google 表格中选择新单元格的功能?
- apache-spark - 合并时火花大于节点内存的sql数据(1)
- javascript - fullcalendar eventmouseover 没有反应
- android - android 事物中的 Tensorflow 演示实现“相机 0:提供的不支持的输入/输出集”
- r - R tryCatch RODBC 函数问题
- php - 如何将具有相同键的数组合并为具有所有键的单个数组