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

如何统计DataFrame中B列各数值出现次数并生成对应列表?

从Pandas DataFrame提取唯一值及对应出现次数

示例DataFrame

假设我们有如下Pandas DataFrame:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    'B': [1401, 1401, 1401, 1601, 2201, 2201, 6401, 6401, 6401, 6401]
})

需求

需要生成两个列表:

  • L1:B列的所有唯一值,保持其在原DataFrame中首次出现的顺序
  • L2:对应L1中每个值在B列的出现次数

期望输出:

L1 = [1401, 1601, 2201, 6401]
L2 = [3, 1, 2, 4]

实现方法

方法1:使用value_counts()(推荐)

利用Pandas的value_counts()方法统计次数,通过sort=False参数保留原顺序:

# 统计B列值的出现次数,保留原顺序
count_series = df['B'].value_counts(sort=False)

# 转换为目标列表
L1 = count_series.index.tolist()
L2 = count_series.values.tolist()

# 输出结果
print(f"L1 = {L1}")
print(f"L2 = {L2}")

方法2:使用groupby()

通过分组统计的方式实现:

# 按B列分组并统计每组大小,保留原顺序
grouped_series = df.groupby('B', sort=False).size()

# 转换为目标列表
L1 = grouped_series.index.tolist()
L2 = grouped_series.values.tolist()

两种方法都能得到符合需求的结果,value_counts()更简洁直接,适合这类场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:24:11