Python 根据数据帧中的前一个数据获取最频繁的值和std

Python 根据数据帧中的前一个数据获取最频繁的值和std,python,python-3.x,pandas,statistics,Python,Python 3.x,Pandas,Statistics,这半个统计问题实际上 我有一个由9列组成的数据帧。根据不同的测量结果,每一个都表示一个苹果的不同直径。行是前面的符号: 55 60 65 70 75 80 85 90 95 0 0.0, 0.0 10.73 39.13 8.35 8.63 33.16 0.0 0.0 1 3.42 0.0 1.28 26.09

这半个统计问题实际上

我有一个由9列组成的数据帧。根据不同的测量结果,每一个都表示一个苹果的不同直径。行是前面的符号:

     55      60      65       70       75       80      85      90      95
0    0.0,   0.0     10.73   39.13      8.35    8.63     33.16   0.0     0.0
1    3.42   0.0     1.28    26.09      31.3   26.73     8.07    3.11    0.0
我试图绘制某种分布图,同时得到一个患有STD的苹果的平均直径。我自己真的想不出一个好方法。有什么想法吗

编辑:

barplot生成了一个很好的图表,但我希望能够得到最频繁的值和标准偏差

b=sns.barplot(data=df)

我尝试使用模式,但它不工作

df.mode()

这是我用于模式计算的例程,也许它也会对您有用。请注意,它在一个范围内寻找模式(均值偏移、均值+偏移),因此不适用于非常偏斜的分布(由偏移定义的公差)

从scipy.stats.kde导入
def get_模式(s0:pd系列):
“”“从非参数高斯拟合获取模式。”“”
#非参数pdf。
s=s0.copy()
平均值=s.平均值()
班次=20
下限、上限=平均位移、平均位移+位移
x=np.linspace(下部、上部、250)
#剪掉上下页边距。
s=s.dropna()[(s<上)和(s>下)]
尝试:
nparam_density=gaussian_kde(s.ravel())
除值错误外:
#数据不足:返回平均值。
回归均值
nparam_density_vec=nparam_density(x)
max\u hist=x[nparam\u density\u vec.argmax()]
返回最大历史值

您能分享一下您尝试过的代码吗
from scipy.stats.kde import gaussian_kde
def get_mode(s0: pd.Series):
    """Get mode from non-parametric Gaussian fit."""
    # Non-parametric pdf.
    s = s0.copy()
    mean = s.mean()
    shift = 20
    lower, upper = mean - shift, mean + shift
    x = np.linspace(lower, upper, 250)
    # Cut-off the upper and lower margins.
    s = s.dropna()[(s < upper) & (s > lower)]
    try:
        nparam_density = gaussian_kde(s.ravel())
    except ValueError:
        # Not enough data: return mean.
        return mean
    nparam_density_vec = nparam_density(x)

    max_hist = x[nparam_density_vec.argmax()]
    return max_hist