在SageMaker环境中使用Snowpark移除全0列(无需转Pandas)
无需转换为Pandas移除Snowpark DataFrame全0列的方法
当然可以直接用Snowpark原生API实现,不用转成Pandas,具体代码如下:
from snowflake.snowpark import functions as F # 统计每列是否存在非0值 col_validation = df.agg(*[(F.col(col) != 0).any().alias(col) for col in df.columns]) # 提取包含非0值的列名 valid_columns = [col for col, has_non_zero in col_validation.collect()[0].as_dict().items() if has_non_zero] # 筛选保留有效列 df = df.select(valid_columns)
说明
- 全程基于Snowpark操作,能利用Snowflake的分布式计算能力,处理大数据量时比转Pandas效率更高
- 通过
agg批量统计每列的非0值存在情况,collect()获取统计结果后解析出有效列名,最后用select筛选目标列
内容的提问来源于stack exchange,提问作者CodingNewbie
相关产品推荐
相关产品推荐

