R语言无需修改原dataframe删除行均值小于1的行的简洁方法
实现方案
直接使用布尔索引按行均值过滤即可,全程不会修改原DataFrame,也无需新增辅助列:
- 针对你的示例数据(存在非数值标签列
A不参与均值计算),使用如下代码:
# 替换df为你的原始DataFrame变量名,filtered_df为过滤后的结果 filtered_df = df[df.drop('A', axis=1).mean(axis=1) >= 1]
- 如果你的DataFrame所有列均为数值列,可简化为:
filtered_df = df[df.mean(axis=1) >= 1]
代码说明
axis=1传入mean方法指定按行计算均值,默认axis=0为按列计算- 外层通过布尔索引匹配符合「行均值≥1」条件的行,返回新的DataFrame对象,不会对原始DataFrame做任何修改
- 若行内存在空值,
mean方法默认会自动跳过空值计算,无需额外配置参数
内容的提问来源于stack exchange,提问作者keenan
相关产品推荐
相关产品推荐

