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

如何为DataFrame的单行全列数据绘制displot分布统计图

单行DataFrame数值分布可视化实现方案

前置依赖

需要提前安装pandas、matplotlib两个基础库,可额外安装seaborn简化统计图表绘制。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

数据预处理

你当前的DataFrame只有1行,首先需要将其转换为一维序列才能直接用于绘图:

# 你的示例DataFrame
df = pd.DataFrame([[83.0,147.0,195.0,170.0,216.0,237.0,334.0,386.0,253.0,414.0]],
                  columns=['O13','O117','O5','O31','O49','O58','O70','O103','O10','O69'])

# 取第一行得到「列名为索引、数值为值」的一维Series
data_series = df.iloc[0]

可选可视化方案

你可以根据需求选择对应的图表类型:

方案1:直方图+核密度估计(推荐用于数值分布统计)

可以直观看到数值的频次分布、集中区间、偏态特征:

plt.figure(figsize=(10,6))
# kde=True表示同时绘制核密度曲线,bins可根据数值数量调整
sns.histplot(data=data_series, kde=True, bins=5, color='skyblue')
plt.title('所有列数值分布')
plt.xlabel('数值')
plt.ylabel('频次')
plt.grid(axis='y', alpha=0.3)
plt.show()

方案2:排序条形图(同时对应列名和具体数值)

如果需要同时查看每个列对应的具体数值和大小排序,可选择该方案:

plt.figure(figsize=(12,6))
# 按数值排序后绘制条形图
data_series.sort_values().plot(kind='bar', color='lightgreen')
plt.title('各列数值分布对比')
plt.xlabel('列名')
plt.ylabel('数值')
plt.xticks(rotation=45)
plt.grid(axis='y', alpha=0.3)
# 可选:在柱子上方添加数值标注
for i, v in enumerate(data_series.sort_values()):
    plt.text(i, v+5, str(v), ha='center')
plt.show()

方案3:箱线图(快速查看四分位、异常值特征)

适合快速判断分布的离散程度、是否存在异常值:

plt.figure(figsize=(8,6))
sns.boxplot(data=data_series, color='orange')
plt.title('数值分布箱线图')
plt.ylabel('数值')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 07:06:02