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

如何从CSV文件分别统计指定多列的频次并按降序输出

解决方法

要实现对「Source」「Destination」「Protocol」三列单独统计每个值的出现次数并降序排列,你需要对每一列分别调用value_counts()方法,而非直接在多列组合上调用。以下是几种可行的实现方式:

方法一:循环遍历目标列

import pandas as pd

# 读取数据集
df = pd.read_csv('IN300_Unit9.csv', sep=',', decimal='.', header='infer')

# 定义需要统计的列名
target_cols = ['Source', 'Destination', 'Protocol']

# 遍历每一列,输出统计结果
for col in target_cols:
    print(f"=== {col} 列值统计 ===")
    # value_counts默认按降序排列,ascending=False可省略
    count = df[col].value_counts(ascending=False)
    print(count)
    print("\n")

方法二:使用apply批量处理

如果想一次性获取所有列的统计结果并存储,可以用apply方法批量处理:

import pandas as pd

df = pd.read_csv('IN300_Unit9.csv', sep=',', decimal='.', header='infer')
target_cols = ['Source', 'Destination', 'Protocol']

# 对目标列批量应用value_counts,得到包含各列统计结果的字典
count_results = df[target_cols].apply(pd.Series.value_counts, ascending=False)

# 遍历输出每个列的结果,去掉NaN值(对应其他列无匹配的值)
for col in target_cols:
    print(f"=== {col} 列值统计 ===")
    print(count_results[col].dropna())
    print("\n")

关键说明

  • 原代码中df[['Source', 'Destination', 'Protocol']].value_counts()会统计三列值的组合出现次数,这是你之前得到组合统计结果的原因。
  • df[col].value_counts()默认按出现次数降序排列,因此ascending=False参数可省略,若需要明确指定也可以保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:45:56