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

如何删除含缺失值的键?及从DataFrame提取无缺失数据字母存列表

搞定筛选无缺失数据字母的问题~

首先不用急着删除含缺失值的键,咱们可以通过检查数据缺失情况,精准筛选出符合要求的字母再存入列表。下面分两种常见场景给你具体代码:

场景1:字母是分组列(比如每行对应一个字母)

如果你的DataFrame里有一列是字母(比如叫letter),其他列是对应的数据,要找出那些所属组内所有数据都没有缺失的字母:

import pandas as pd

# 先给个示例DataFrame,你可以替换成自己的
data = {
    'letter': ['A', 'A', 'B', 'B', 'C', 'C'],
    'data_col1': [1, None, 3, 4, 5, 6],
    'data_col2': [2, 3, 4, 5, 6, 7]
}
df = pd.DataFrame(data)

# 核心操作:分组后过滤出无缺失的组,提取字母转列表
valid_letters = df.groupby('letter').filter(lambda group: group.notna().all().all())['letter'].unique().tolist()
print(valid_letters)  # 输出就是你要的 ['B', 'C']

场景2:字母是DataFrame的列名

如果你的字母是列的名称,要找出整列都没有缺失值的列名(字母):

# 示例DataFrame,替换成你的实际数据
data = {
    'A': [1, None, 3],
    'B': [2, 3, 4],
    'C': [5, 6, 7]
}
df = pd.DataFrame(data)

# 筛选无缺失的列名,转为列表
valid_letters = df.columns[df.notna().all()].tolist()
print(valid_letters)  # 同样输出 ['B', 'C']

小解释

  • notna().all():用来检查一行/一列里所有元素是不是都没有缺失;分组的时候用group.notna().all().all()是先确保组内每行都没缺失,再确保整个组所有行都符合。
  • 最后用.tolist()把筛选结果转成列表,就完美符合你的需求啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:18:36