【问题标题】:Smooth histogram from data in column in Pandas DataFrame?Pandas DataFrame中列中数据的平滑直方图?
【发布时间】:2016-06-06 01:38:36
【问题描述】:

这是这个问题的后续:Pandas limit Series/DataFrame to range of values of one column

接下来我想对“年龄”列中的数字进行直方图,然后平滑结果(以减少分散)。什么是优雅的方式来做到这一点?

【问题讨论】:

  • 为什么不自己试试呢?这很容易。查找 Matplotlib 的 hist 函数,或者 pandas 的 hist 函数。
  • Density plotPlotting probability,或者您可能只想要df['Age'].plot(kind='density')df['Age'].hist()。我个人不清楚您所说的“然后平滑结果”是什么意思。
  • 制作直方图很容易,但在尝试对其进行平滑处理时遇到了一些格式问题。似乎唯一的方法是从直方图生成一个新的函数函数并使用 scipy 的插值对其进行平滑/插值,但我认为可能有一种更 Pythonic 的方式来做到这一点,例如,使用 pandas-native 函数?

标签: pandas


【解决方案1】:

您可以使用Seaborn 及其函数distplot 默认绘制核密度估计值和直方图,并自动确定bin 大小。

import seaborn as sns
import numpy as np
import pandas as pd

# Some test data
np.random.seed(33454)
df = pd.DataFrame({'nb': np.random.randint(0, 1000, 100)})
df.sort_values('nb', inplace=True)

ax = sns.distplot(df['nb'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 2015-12-20
    • 2010-12-20
    相关资源
    最近更新 更多