You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含缺失值的Pandas DataFrame按非缺失列组合动态拆分?

动态按非缺失列组合分组生成子DataFrame

步骤1:统一缺失值格式

先把DataFrame中的空白字符替换为Pandas标准缺失值pd.NA,确保缺失值能被系统识别:

import pandas as pd

# 将所有空白(含全空格)替换为标准缺失值
v = v.replace(r'^\s*$', pd.NA, regex=True)

步骤2:生成分组标识

对每一行,生成非缺失列名的拼接字符串作为分组唯一标识,保证相同非缺失列组合的行会被归为一组:

# 每行非缺失列的掩码转成列名字符串作为分组键
group_key = v.notna().apply(lambda row: ','.join(row[row].index), axis=1)

步骤3:分组生成子DataFrame

用生成的分组键对原DataFrame分组,将结果存入字典,键是非缺失列组合字符串,值是对应子DataFrame:

# 动态分组,得到所有非缺失列组合对应的子DataFrame
sub_dfs = {comb: df for comb, df in v.groupby(group_key)}

使用示例

比如要获取只有x5列非缺失的子DataFrame,直接调用:

x5_only_df = sub_dfs["x5"]

内容的提问来源于stack exchange,提问作者anarchy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:25:21