Получите наиболее частые значения и стандартные значения на основе приоритетных данных в кадре данных pandas. - PullRequest
0 голосов
/ 23 декабря 2019

На самом деле это половина статистического вопроса,

У меня есть фрейм данных, состоящий из 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

Я пытаюсь построить какой-нибудь график распределения при получении среднего диаметра яблока с ЗППП. Я не могу придумать хороший путь сам. есть идеи?

edit:

barplot дает хороший график, но я хочу иметь возможность получить наиболее частое значение и стандартное отклонение.

b=sns.barplot(data=df)

barplot

Я пробовал использовать режим, но он не работает.

df.mode()

1 Ответ

0 голосов
/ 23 декабря 2019

Это процедура, которую я использую для режима calc, может быть, она вам тоже пригодится. Имейте в виду, что он ищет режим в диапазоне (среднее смещение, среднее + смещение), поэтому не будет работать для очень искаженных распределений (допуск, определенный как смещение ).

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...