[英]Get most frequent value and std based on precentile data in a pandas dataframe
这一半的统计题其实,
我有一个由 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()
这是我用于模式计算的例程,也许它对您也有用。 请注意,它在一个范围内寻找模式(均值偏移、均值+偏移),因此不适用于非常偏斜的分布(由shift定义的容差)。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.