Pandas中groupby后调用get_group(None)报KeyError的解决方法
问题解决方法
这是因为 pandas 的 groupby() 方法默认参数 dropna=True,会自动排除包含 None/NaN 的分组——哪怕原数据列里存在 None,默认分组后也不会保留这个组,所以调用 get_group(None) 会触发 KeyError。
不用转换 None 的解决方法有两种:
方法一:groupby 时设置 dropna=False
在分组时显式指定 dropna=False,保留包含 None 的分组,之后就能正常用 get_group(None) 获取目标数据:
import pandas as pd # 示例DataFrame df = pd.DataFrame({'A': [1, None, 2, None], 'B': [10, 20, 30, 40]}) # 保留None的分组 gb = df.groupby('A', dropna=False) # 获取None对应的分组 none_group = gb.get_group(None) print(none_group)
方法二:直接用布尔索引筛选
如果不需要完整的分组操作,直接通过布尔索引就能拿到所有 A 列为 None 的行,更简洁:
none_group = df[df['A'].isna()]
内容的提问来源于stack exchange,提问作者Marc Bacvanski
相关产品推荐
相关产品推荐

