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

如何统计pandas DataFrame中唯一值出现次数并生成新DataFrame

实现代码

首先确保你已经导入了pandas和numpy库:

import pandas as pd
import numpy as np

核心实现逻辑

# 你的示例DataFrame
data = {
    'col_A': ['X', 'X', 'Y', 'Z', 'Z'],
    'col_B': ['Y', 'Y', np.nan, 'Z', 'Z'],
}
df = pd.DataFrame(data)

# 统计逻辑
result = df.apply(lambda col: col.value_counts(dropna=False))\
           .fillna(0)\
           .astype(int)\
           .rename(index={np.nan: 'nan'}) # 可选:将NaN索引显示为'nan'字符串,匹配你的输出格式
result.index.name = 'index' # 可选:设置索引名匹配你的输出要求

执行后打印result即可得到你需要的输出格式:

col_A  col_B
index              
X          2      0
Y          1      2
Z          2      2
nan        0      1

逻辑说明

  • value_counts(dropna=False):默认value_counts会忽略NaN,添加这个参数才能统计到NaN的出现次数
  • fillna(0):部分取值只在个别列存在,其他列的统计结果会是NaN,统一填充为0
  • astype(int):把默认的浮点数统计结果转为整数,符合输出要求
  • 最后的rename操作是为了把索引里的np.nan显示为字符串'nan',如果不需要可以直接删掉这行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:15:07