팬더 value_counts 백분율

Salman Mehmood 2023년6월21일
  1. Pandas value_counts() 함수를 사용하여 Python의 Dataframe에서 값 계산
  2. 열 목록에 value_counts() 함수 적용
  3. Python에서 빈도를 백분율로 변환
팬더 value_counts 백분율

value_counts() 함수를 사용하여 값을 계산하는 방법과 이 함수를 데이터 프레임 열 목록에 적용하는 방법을 알아봅니다. 파이썬에서 주파수를 백분율로 변환하는 방법도 배웁니다.

Pandas value_counts() 함수를 사용하여 Python의 Dataframe에서 값 계산

value_counts() 함수는 groupby() 함수와 약간 유사하게 작동하지만 value_counts() 함수를 사용하는 이점도 있습니다.

이 Pandas 기능을 탐색하기 위해 분석을 위해 직원 데이터 세트를 사용하고 각 부서의 직원 비율을 찾습니다.

목표는 급여의 간단한 데이터 프레임을 만들고 부서의 급여와 직원이 떠나는 부서로 직원의 상위 세그먼트를 찾는 것입니다. 그리고 우리는 빈도를 백분율로 바꿀 것입니다. 이 모든 것은 value_counts() 함수로 수행할 수 있습니다.

Pandas를 가져와 변수인 pd로 저장한 다음 pd 변수를 사용하여 read_csv() 함수를 호출하고 HR_file.csv라는 데이터 파일을 전달합니다.

처음 5개의 행과 몇 개의 열을 제공하는 head() 함수에 액세스할 수 있습니다.

import pandas as pd

Employee_Data = pd.read_csv("HR_file.csv")
Employee_Data.head()

dataframe

항상 대괄호를 사용하여 관심 있는 열을 분리할 수 있으며 대괄호 안에 salary 열을 호출할 것입니다. 이제 value_counts() 함수를 사용할 것입니다.

Employee_Data["salary"].value_counts()

급여의 저, 중, 고 분포를 볼 수 있습니다.

low       7316
medium    6446
high      1237
Name: salary, dtype: int64

정규화 매개변수

Shift+Tab을 누르면 이 기능에 필요한 것이 무엇인지 항상 확인할 수 있으며, 예를 들어 정규화와 같이 사용할 수 있는 몇 가지 다른 매개변수가 있음을 알 수 있습니다.

대부분의 급여가 낮음 범주에 속한다는 것을 알 수 있지만 백분율을 얻으려면 정규화과 동일하게 사용합니다.

Employee_Data["salary"].value_counts(normalize=True)

출력:

low       0.487766
medium    0.429762
high      0.082472
Name: salary, dtype: float64

부서 열을 사용하여 급여 열을 쉽게 변경할 수 있습니다.

Employee_Data["Departments "].value_counts(normalize=True)

우리는 부서의 분류를 볼 수 있으며 여전히 정규화되어 있습니다.

sales          0.276018
technical      0.181345
support        0.148610
IT             0.081805
product_mng    0.060137
marketing      0.057204
RandD          0.052470
accounting     0.051137
hr             0.049270
management     0.042003
Name: Departments , dtype: float64

정규화를 원하지 않으면 내림차순으로 표시되는 것을 제거합니다.

Employee_Data["Departments "].value_counts()

출력:

sales          4140
technical      2720
support        2229
IT             1227
product_mng     902
marketing       858
RandD           787
accounting      767
hr              739
management      630
Name: Departments , dtype: int64

열 목록에 value_counts() 함수 적용

다음으로 우리가 할 수 있는 것은 급여부서에 의한 직원 간의 교차점입니다. 목록을 사용하여 하나 이상의 열을 사용하고 목록 내에서 salaryDepartments 를 전달한 다음 value_counts() 함수를 적용합니다.

Departments 앞에 약간의 공백이 보이면 부서에서 어떤 이유로 뒤에 공백을 추가한 것이므로 이 열을 사용하여 공백을 추가합니다.

Employee_Data[["Departments ", "salary"]].value_counts()

우리 직원들의 매출이 대부분이고 대부분이 낮은 범위에 있는 것을 볼 수 있고 여기까지 내려오면 매출이 높은데 연봉은 269명에 불과하다는 것을 알 수 있습니다. 그리고 2099년은 연봉이 낮은 편입니다.

value_counts 적용

Python에서 빈도를 백분율로 변환

이제 우리는 직원들이 어떤 부서를 떠났는지 알고 싶습니다. 이를 위해 회사 종료 열을 사용합니다.

Employee_Data[["Departments ", "Quit the Company"]].value_counts()

보시다시피 1은 회사를 그만둔 사람에 관한 것이므로 우리는 그 사람만 볼 것입니다. 대다수의 사람들이 영업 부서를 떠났습니다.

빈도를 백분율로 변환

이제 매출만 평가하면 됩니다. 조건을 생성하고 마스크를 가져와 부서 열을 쉽게 분리할 수 있습니다.

Employee_Data["Departments "] == "sales"

이제 이 조건을 대괄호로 캡슐화하고 sales라는 변수에 저장합니다. 매출을 사용하여 회사를 그만둔 사람들의 가치 수를 살펴보고 있습니다.

sales = Employee_Data[Employee_Data["Departments "] == "sales"]
sales["Quit the Company"].value_counts()

이제 회사를 그만 둔 숫자를 볼 수 있습니다.

0    3126
1    1014
Name: Quit the Company, dtype: int64

이것을 백분율로 보는 것이 좋을 수 있습니다.

sales = Employee_Data[Employee_Data["Departments "] == "sales"]
sales["Quit the Company"].value_counts(normalize=True)

출력:

0    0.755072
1    0.244928
Name: Quit the Company, dtype: float64
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn