Получение квантилей из частотных данных на основе Classmark

При написании кода я изо всех сил пытался получить квантили 10, 50 и 90 (квантиль - это то, где образец делится на равные по размеру). Каждая строка представляет собой отдельный образец. Данные в этом фрейме данных представляют собой частоту для каждой отметки класса (представленной в столбцах).

import pandas as pd

main_folder = r'c:user/sherwood/documents/data.csv'
datos = pd.read_csv(main_folder)
datos.head()

output[1]:
    'sample_number' 'classmark1' 'classmark2' 'classmark3' ... 
                        0.37         0.44         0.52
           1          freq1_1      freq1_2       freq1_3
           2          freq2_1      freq2_2       freq2_3
           3          freq3_1      freq3_2       freq3_3
           .
           .
           .

Оценки: 0,37, 0,44, 0,52 и т. Д. Обратите внимание, что ширина классов не известна и не равна по распределению. Вот данные в Excel (правый столбец - это образец, но не используется во фрейме данных)

Я хочу выяснить, как получить квантили 10, 50 и 90 для каждой строки, просто имея метки класса в качестве заголовков.

(В статистике метка класса - это значение в пределах интервала классов, особенно его средняя точка или ближайшее целое значение, используемое для представления интервала для удобства вычислений).


person Maby Esperanza    schedule 21.06.2020    source источник


Ответы (1)


Попробуйте использовать .describe ()

import pandas as pd
main_folder = r'c:user/sherwood/documents/data.csv'
datos = pd.read_csv(main_folder)
datos.describe(percentiles = [0.1,0.5,0.9]).filter( regex = '%',axis = 0)
person Ian    schedule 21.06.2020