如何筛选dataset中至少90%数值大于0的列
实现方案
1. Python(Pandas环境)
思路是先统计每列中大于0的数值占比,再筛选符合条件的列。
import pandas as pd # 假设你的数据集存储在变量df中 # 计算每列大于0的数值占比(包含缺失值时,默认缺失值不计入大于0的范畴) positive_rate = (df > 0).sum(axis=0) / df.shape[0] # 筛选出90%以上数值大于0的列 filtered_df = df.loc[:, positive_rate >= 0.9]
如果需要排除缺失值后再计算占比,可改用如下逻辑:
# 仅统计非缺失值中大于0的占比 positive_rate = (df > 0).sum(axis=0) / df.notna().sum(axis=0) filtered_df = df.loc[:, positive_rate >= 0.9]
2. R语言环境
# 假设你的数据集存储在变量df中 # 计算每列大于0的数值占比(自动忽略缺失值) positive_rate <- colSums(df > 0, na.rm = TRUE) / colSums(!is.na(df)) # 筛选符合条件的列 filtered_df <- df[, positive_rate >= 0.9]
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

