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

如何一次性获取DataFrame各列的四分位数?(数据集为df4)

获取DataFrame所有列的四分位数方法

要一次性获取数据集df4所有列的四分位数,不用费劲写复杂循环,pandas本身就有更高效的内置方法;如果一定要用循环,也有正确的写法,下面分别说明:

方法1:用pandas内置函数(推荐)

这是最简洁高效的方式,完全不需要手动写循环:

  • 快速查看统计信息(含四分位数):用describe()函数,默认会输出包括25%、50%、75%分位数在内的核心统计值:
    print(df4.describe())
    
    要是只想保留四分位数,可以指定percentiles参数精准筛选:
    print(df4.describe(percentiles=[0.25, 0.5, 0.75]))
    
  • 精准获取四分位数:用quantile()函数直接指定分位数,结果会以DataFrame格式返回,行是分位数,列是原数据的列,结构清晰:
    quartiles = df4.quantile([0.25, 0.5, 0.75])
    print(quartiles)
    

方法2:正确的for循环写法

如果你坚持要用循环(比如需要对每列做额外处理),注意要筛选数值型列并正确存储结果,避免之前的错误:

import pandas as pd

# 初始化字典存储每列的四分位数
col_quartiles = {}

# 遍历所有列
for column in df4.columns:
    # 只处理数值类型的列,避免非数值列(如字符串、日期)报错
    if pd.api.types.is_numeric_dtype(df4[column]):
        # 获取当前列的四分位数
        q_values = df4[column].quantile([0.25, 0.5, 0.75])
        col_quartiles[column] = q_values

# 转成DataFrame方便查看
result_df = pd.DataFrame(col_quartiles)
print(result_df)

你之前循环出错的常见原因:

  • 没过滤非数值列,导致字符串、日期类型的列报错或返回无意义结果
  • 没有将每列的结果存储汇总,只是临时打印后丢失
  • 调用quantile()时参数错误,比如没传入分位数列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:50:26