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

如何统计DataFrame指定列中各唯一值所在的行数?

解决方案

假设你的数据已通过pandas加载为DataFrame df,可通过以下步骤实现需求:

核心思路

  1. 筛选出需要统计的目标列(Type1、Type2、Type3、Type4)
  2. 对每一行去重,确保同一行内的重复值仅被计为一次
  3. 统计每个值(包括NA)被多少行包含,最终整理为目标格式

代码实现

import pandas as pd
import numpy as np

# 模拟输入的DataFrame(包含未列出的其他列)
data = {
    'Case': [1, 2, 3, 4, 5],
    'Type1': ['A', 'B', 'C', 'D', 'E'],
    'Type2': ['B', 'A', 'D', np.nan, 'B'],
    'Type3': ['C', 'D', 'A', np.nan, 'A'],
    'Type4': [np.nan, np.nan, np.nan, 'A', np.nan],
    'OtherColumn': ['val1', 'val2', 'val3', 'val4', 'val5']
}
df = pd.DataFrame(data)

# 1. 选中需要统计的列
target_cols = ['Type1', 'Type2', 'Type3', 'Type4']
type_subset = df[target_cols]

# 2. 每行去重后转置,统计各值出现的行数(保留NA)
result = (type_subset.apply(lambda row: pd.Series(row.unique()), axis=1)
          .stack()
          .value_counts(dropna=False)
          .reset_index())

# 3. 重命名列匹配期望格式
result.columns = ['Type', 'Number of Cases']

# 查看结果
print(result)

输出结果

TypeNumber of Cases
A5
NaN5
B3
D3
C2
E1

(注:输出中的NaN会在实际显示中对应你期望的NA)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:35:26