使用pandas df.value_counts()时如何避免空白数据项?
解决value_counts统计出现空白项的问题
问题根源
你的class列里肯定混了缺失值(NaN)或者空字符串,才会导致统计结果出现空白行——毕竟你预期这列只有'p'和'e'。
实操步骤
先确认无效值类型
跑这行代码看看class列的所有唯一值,就能明确是缺失值还是空字符串:print(myTable['class'].unique())清理无效数据
- 如果是NaN缺失值,直接过滤掉:
cleaned_table = myTable.dropna(subset=['class']) - 如果是空字符串(比如""或者带空格的空值),就精准过滤:
# 去掉空字符串和纯空格的行 cleaned_table = myTable[myTable['class'].str.strip() != ""]
- 如果是NaN缺失值,直接过滤掉:
重新统计配对数
用清理后的数据集再统计,就不会有空白项了:print(cleaned_table.value_counts(subset=['class', 'cap-color']))
额外保险操作
要是想彻底确保只保留'p'和'e'的行,可以加个强校验:
cleaned_table = myTable[myTable['class'].isin(['p', 'e'])]
内容的提问来源于stack exchange,提问作者imAtom
相关产品推荐
相关产品推荐

