python - 在条件列表推导中使用 or 语句来过滤数据框中的列
问题描述
我正在尝试过滤包含字母“R”或“H”的数据框中的列。
该代码仅在我搜索 1 个字母时有效,但在我添加or
语句时它会返回所有列。
我想知道是否可以在列表理解中使用 or 。这是我的代码:
data = pd.read_csv(filename)
data_sorted = data.sort_values('Timestamp', ascending=False)
four_dec_cols = [col for col in data_sorted if 'H' in col]
失败的代码:
four_dec_cols = [col for col in data_sorted if 'RB' or 'H' in col]
最后,我想将包含 'H' 或 'R' 的列四舍五入到小数点后 4 位,其余的列到小数点后 2 位,所以如果有更直接的方法可以做到这一点,我会很感激这个建议。
非常感谢!
编辑:所以理想情况下 - 我想返回这个数据框,其中任何包含 RB 或 H 的列四舍五入到小数点后 4 位,其他所有内容都四舍五入到 2。
解决方案
怎么样:
cols = df.columns[df.columns.str.contains('RB|H')]
推荐阅读
- javascript - 如何使用 FlatList 在 react-native 中渲染异构数据?
- postman - 如何动态设置 Postman 环境变量键
- oop - 如何在 Haskell 中使用类型类以及与 java 接口的区别
- ibm-cloud - ibm_platform_services/global_search api 的一次响应中最多可以返回多少条记录
- sql-server - 如何防止用户(拥有 db_datawriter)能够通过管理工作室进行连接?
- python - discord webhook ip 抓取器
- jquery - 禁用 if...else 上的按钮
- python - IBM Cloud 中的自定义映像创建间歇性超时
- sql - 通过将三个表与 Temp 表组合来更新查询
- python - 当 scipy.ndimage.zoom 使用 order 1 和 order 3 时,输出中引入了什么区别?