반응형
지정된 열의 백분위수 통계 찾기
주어진 열의 평균(), 중위수(), 모드()를 찾을 수 있는 판다 데이터 프레임 my_df가 있습니다.
my_df['field_A'].mean()
my_df['field_A'].median()
my_df['field_A'].mode()
90 퍼센트와 같은 더 자세한 통계를 찾을 수 있는지 궁금합니다.감사합니다!
- 기능을 사용할 수 있습니다.
- 다음을 위한 API를 보면,
quantile()
보간을 하는 방법에 대한 논쟁이 필요하다는 것을 알게 될 것입니다.데이터의 두 위치 사이에 있는 분위수를 원하는 경우:- 'linear', 'lower', 'lower', 'midpoint' 또는 'midpoint'입니다.
- 기본적으로 선형 보간을 수행합니다.
- 이러한 보간 방법은 백분위수에 대한 위키백과 기사에서 논의됩니다.
- 다음을 위한 API를 보면,
import pandas as pd
import numpy as np
# sample data
np.random.seed(2023) # for reproducibility
data = {'Category': np.random.choice(['hot', 'cold'], size=(10,)),
'field_A': np.random.randint(0, 100, size=(10,)),
'field_B': np.random.randint(0, 100, size=(10,))}
df = pd.DataFrame(data)
df.field_A.mean() # Same as df['field_A'].mean()
# 51.1
df.field_A.median()
# 50.0
# You can call `quantile(i)` to get the i'th quantile,
# where `i` should be a fractional number.
df.field_A.quantile(0.1) # 10th percentile
# 15.6
df.field_A.quantile(0.5) # same as median
# 50.0
df.field_A.quantile(0.9) # 90th percentile
# 88.8
df.groupby('Category').field_A.quantile(0.1)
#Category
#cold 28.8
#hot 8.6
#Name: field_A, dtype: float64
df
Category field_A field_B
0 cold 96 58
1 cold 22 28
2 hot 17 81
3 cold 53 71
4 cold 47 63
5 hot 77 48
6 cold 39 32
7 hot 69 29
8 hot 88 49
9 hot 3 49
연역을 맡다s
s = pd.Series(np.arange(100))
다음에 대한 분위수 가져오기[.1, .2, .3, .4, .5, .6, .7, .8, .9]
s.quantile(np.linspace(.1, 1, 9, 0))
0.1 9.9
0.2 19.8
0.3 29.7
0.4 39.6
0.5 49.5
0.6 59.4
0.7 69.3
0.8 79.2
0.9 89.1
dtype: float64
OR
s.quantile(np.linspace(.1, 1, 9, 0), 'lower')
0.1 9
0.2 19
0.3 29
0.4 39
0.5 49
0.6 59
0.7 69
0.8 79
0.9 89
dtype: int32
저는 아래가 효과가 있을 것이라고 생각했습니다.
my_df.dropna().quantile([0.0, .9])
null 값을 사용하여 여러 열을 지정하고 여러 분위수 값을 얻을 수도 있습니다(이상치 처리에 95% 백분위수 사용).
my_df[['field_A','field_B']].dropna().quantile([0.0, .5, .90, .95])
매우 쉽고 효율적인 방법은 특정 열의 설명 함수를 호출하는 것입니다.
df['field_A'].describe()
이것은 당신에게 평균, 최대, 제곱 그리고 75번째 백분위수를 줄 것입니다.
Description은 사분위수를 줄 것입니다. 백분위수를 원한다면 다음과 같은 것을 할 수 있습니다.
df['YOUR_COLUMN_HERE'].describe(percentiles=[.1, .2, .3, .4, .5, .6 , .7, .8, .9, 1])
언급URL : https://stackoverflow.com/questions/39581893/find-percentile-stats-of-a-given-column
반응형
'programing' 카테고리의 다른 글
전체 포스트백 없이 AJAX 업데이트 패널에서 파일 업로드 (0) | 2023.09.08 |
---|---|
Jquery 바인딩 더블클릭과 싱글클릭 별도 (0) | 2023.09.03 |
파워셸 마우스를 움직여도 유휴 모드가 방지되지 않습니다. (0) | 2023.09.03 |
시간을 변환합니다.문자열 작성 시간 (0) | 2023.09.03 |
jquery "$post" 요청을 동기화하는 방법 (0) | 2023.09.03 |