パンダ value_counts パーセンテージ

Salman Mehmood 2024年2月15日
  1. Pandas value_counts() 関数を使用して、Python でデータフレームから値をカウントする
  2. value_counts() 関数を列のリストに適用する
  3. Pythonで頻度をパーセンテージに変換する
パンダ value_counts パーセンテージ

value_counts() 関数を使用して値をカウントする方法を学習し、この関数をデータフレーム列のリストに適用する方法を確認します。 また、Python で周波数をパーセンテージに変換する方法も学習します。

Pandas value_counts() 関数を使用して、Python でデータフレームから値をカウントする

value_counts() 関数は groupby() 関数と少し似ていますが、value_counts() 関数を使用する利点もあります。

この Pandas 関数を調べるために、分析に従業員データ セットを使用し、各部門の従業員の割合を見つけます。

目標は、給与の単純なデータフレームを作成し、部門の給与によって従業員の上位セグメントを見つけ、従業員が残した部門を見つけることです。 そして、頻度をパーセンテージに変換します。 これはすべて value_counts() 関数で行うことができます。

Pandas をインポートして、それを変数 pd として保存することから始めましょう。次に、pd 変数を使用して read_csv() 関数を呼び出し、HR_file.csv というデータ ファイルを渡します。

head() 関数にアクセスすると、最初の 5 行と数列が得られます。

import pandas as pd

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

データフレーム

角かっこを使用して、関心のある列をいつでも分離できます。かっこ内では、salary 列を呼び出します。 value_counts() 関数を使用します。

Employee_Data["salary"].value_counts()

給与の低、中、高の分布を見ることができます。

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

normalize パラメータ

Shift+Tab を押すと、この関数が必要とするものをいつでも確認できます。たとえば、normalize など、使用できるいくつかの異なるパラメーターがあることがわかります。

給与の大部分がカテゴリにあることがわかりますが、パーセンテージを取得したい場合は、正規化=を使用します。

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

出力:

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

Departments 列を使用してsalary列を簡単に変更できます。

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 による従業員の交点は何かということです。 リストを使用して複数の列を使用し、リスト内で salaryDepartments を渡し、value_counts() 関数を適用します。

Departments の前に少しスペースがある場合は、部門が何らかの理由でその後にスペースを追加しているためです。この列を使用してスペースを追加します。

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

従業員のほとんどの売上高とその大部分が低い範囲にあることがわかります。ここに来ると、売上高の給与額が高いことがわかりますが、269 人しかいません。 そして2099年は低賃金帯。

value_counts を適用

Pythonで頻度をパーセンテージに変換する

ここで、従業員がどの部門に残っているかを知りたいと考えています。 これを行うには、会社を辞める列を使用します。

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

ご覧のとおり、1 は誰が会社を辞めたのかという観点から見た場合なので、その人だけを見ることになります。 ほとんどの人が営業部門を離れました。

頻度をパーセンテージに変換

あとは sales だけを評価する必要があります。 条件を作成してマスクを取得することで、Departments 列を簡単に分離できます。

Employee_Data["Departments "] == "sales"

次に、この条件を括弧でカプセル化し、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
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