Olá!
Na parte 02 do curso, o instrutor nos ensina como construir a distribuição de frequência após definir a quantidade de intervalos (o k de Sturges).
No DataFrame usado na aula, a tabela já estava pronta (A, B, C.. etc). Considerando que eu tenha um df com diversos valores e queira classificá-los de acordo com o intervalo, como poderia fazer?
Basicamente, tenho um DataFrame com varios preços. O numero de intervalos resultou em 17. Gostaria que esse intervalo fosse incluído no meu DataFrame
A saída esperada seria algo do tipo:
casa preco intervalo
A 580.000.000 67.374.999 - 583.333.333
B 1.700.000.0 1.600.000.0 - 2.108.333.333
C 600.000.000 67.374.999 - 583.333.333
Como calculei:
## Sturges == k = 1 + (10/3).log n
n = df.shape[0]
k = int(round(1 + (10/3) * np.log10(n)))
k ##frequency
## k == 17
## Frequency table
## count
frequency = pd.value_counts(
pd.cut(x = df.price, bins = k, include_lowest = True), sort = False)
## percentage
percentage = pd.value_counts(
pd.cut(x=df.price, bins = k, include_lowest = True), sort = False, normalize = True) *100
## Formatting Frequency Table
frequency_table = ({'frequency' : frequency, 'percentage' : percentage})
frequency_table = pd.DataFrame(frequency_table)
frequency_table.rename_axis('price', axis = 'columns', inplace = True)
frequency_table
Meu notebook está no GitHub, saída 148 https://github.com/daianeklein/house-rocket-Insights-project/blob/master/House-Rocket-Company.ipynb
O que eu não consegui fazer é o pandas entender que preço é uma coluna:
frequency_table.columns
out [ ]
Index(['frequency', 'percentage'], dtype='object', name='price')
Desculpem o tamanho da pergunta, estou há alguns dias tentando encontrar uma forma de fazer isso. Obrigada!