パンダ value_counts パーセンテージ
-
Pandas
value_counts()
関数を使用して、Python でデータフレームから値をカウントする -
value_counts()
関数を列のリストに適用する - Pythonで頻度をパーセンテージに変換する
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()
関数を列のリストに適用する
次にできることは、salary
と Departments
による従業員の交点は何かということです。 リストを使用して複数の列を使用し、リスト内で salary
と Departments
を渡し、value_counts()
関数を適用します。
Departments
の前に少しスペースがある場合は、部門が何らかの理由でその後にスペースを追加しているためです。この列を使用してスペースを追加します。
Employee_Data[["Departments ", "salary"]].value_counts()
従業員のほとんどの売上高とその大部分が低い範囲にあることがわかります。ここに来ると、売上高の給与額が高いことがわかりますが、269 人しかいません。 そして2099年は低賃金帯。
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
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