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

如何截取DataFrame子集剔除离群值以绘制1980-2020年通胀率分布图

你可以按以下步骤完成离群值剔除和重绘图表的需求:

  • 第一步:读取你的本地通胀数据集,定位到存储通胀值的字段
  • 第二步:基于该字段的所有有效值计算99.5%分位数的阈值
  • 第三步:保留所有通胀值小于等于该阈值的记录,完成数据过滤
  • 第四步:用过滤后的数据集重新绘制分布图表即可

Python(pandas)实现示例

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取本地csv文件
df = pd.read_csv("替换为你的本地文件路径.csv")
# 替换为你数据集里通胀率的实际列名
inflation_data = df["inflation_rate"]
# 计算99.5%分位数阈值
threshold_995 = np.quantile(inflation_data, 0.995)
# 过滤掉高于阈值的离群值
filtered_data = df[df["inflation_rate"] <= threshold_995]

# 绘制分布直方图示例
plt.hist(filtered_data["inflation_rate"], bins=50, edgecolor="black")
plt.xlabel("通胀率")
plt.ylabel("出现频次")
plt.title("1980-2020年各国通胀率分布(剔除99.5%分位以上极端值)")
plt.show()

R语言实现示例

library(tidyverse)

# 读取本地csv文件
df <- read_csv("替换为你的本地文件路径.csv")
# 替换为实际的通胀率列名,计算99.5%分位数阈值
threshold_995 <- quantile(df$inflation_rate, 0.995)
# 过滤数据
filtered_data <- df %>% filter(inflation_rate <= threshold_995)

# 绘制分布直方图示例
ggplot(filtered_data, aes(x = inflation_rate)) +
  geom_histogram(bins = 50, color = "black") +
  labs(x = "通胀率", y = "出现频次", title = "1980-2020年各国通胀率分布(剔除99.5%分位以上极端值)")

补充注意事项

  • 如果需要同时剔除极低的极端值,可以同时保留0.5%~99.5%分位数区间的数据,在过滤条件中补充>= 0.5%分位数阈值即可
  • 不同工具的分位数计算逻辑有细微差异,若需要对齐其他工具的结果,可以调整分位数计算函数的method参数
  • 重绘图表时可以根据数据分布调整bins的数量,让展示效果更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:18:01