programing

열에서 항목 발생 빈도를 백분율로 가져옵니다.

starjava 2023. 9. 14. 21:34
반응형

열에서 항목 발생 빈도를 백분율로 가져옵니다.

df 열에서 특정 값의 백분율을 구하고 싶습니다.(col1, col2, col3, 성별) 성별 열에 M, F 또는 기타 값이 있다고 가정합니다.df에서 M, F, Other 값의 백분율을 구하고자 합니다.

M, F, Other instance라는 숫자를 주는 이것을 시도해 보았지만, 이것들을 df의 총 값의 백분율로 원합니다.

df.groupby('gender').size()

누가 도와줄 수 있습니까?

사용하다value_counts와 함께normalize=True:

df['gender'].value_counts(normalize=True) * 100

결과는 (0, 1) 범위의 분수입니다.%를 얻기 위해 여기에 100을 곱합니다.

볼 필요가 없는 경우M그리고.F이외의 값gender열을 사용해 볼 수도 있습니다.value_counts()그리고.count()다음과 같이

df = pd.DataFrame({'gender':['M','M','F', 'F', 'F']})
# Percentage calculation
(df['gender'].value_counts()/df['gender'].count())*100

결과:

F    60.0
M    40.0
Name: gender, dtype: float64

또는 사용하기groupby:

(df.groupby('gender').size()/df['gender'].count())*100

200개의 값이 있다고 하자 이 중 120개는 M, 80개는 F로 분류됩니다.

1)

df['gender'].value_counts()

 output:

 M=120
 F=80

2)

df['gender'].value_counts(Normalize=True)

  output:

  M=0.60
  F=0.40

3)

df['gender'].value_counts(Normalize=True)*100 #will convert output to percentages

  output:

  M=60
  F=40

불균형을 확인하기 위한 목표 변동의 백분율을 찾습니다.

g = data[Target_col_Y]
df = pd.concat([g.value_counts(),              
g.value_counts(normalize=True).mul(100)],axis=1,keys=('counts','percentage'))

print (df)

카운트 백분율

0 36548 88.734583

1 4640 11.265417

여기서 열 백분율에서 최대값을 찾음으로써 #margin이 어느 정도인지 확인합니다.

df1=df.diff(periods=1,axis=0)
difvalue=df1[[list(df1.columns)[-1]]].max()
print('(Gender Male= 0):\n {}%'.format(100 - round(df['Gender'].mean()*100, 2)))
print('(Gender Female=1):\n{}%'.format(round(df['Gender'].mean()*100, 2)))

언급URL : https://stackoverflow.com/questions/50558458/get-frequency-of-item-occurrences-in-a-column-as-percentage

반응형