首页 > 解决方案 > 在条件列表推导中使用 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。

在此处输入图像描述

标签: pythonpandaslistconditional-statements

解决方案


怎么样:

cols = df.columns[df.columns.str.contains('RB|H')]

推荐阅读