{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-0.2470000000000001"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"values = [-0.005, 0.003, -0.014, 0.003, -0.002, -0.014, -0.014, -0.005, -0.014, -0.014,\n",
" -0.005, -0.005, -0.014, -0.014, -0.014, -0.014, -0.014, -0.014, -0.014, -0.014,\n",
" -0.014, -0.014, -0.014, -0.014, 0.009, -0.002]\n",
"\n",
"# Calculate the total\n",
"total_sum = sum(values)\n",
"total_sum"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" Nama | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" avg_time_work | \n",
" departemen | \n",
" position | \n",
" income | \n",
" total_komp | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Jayeng Winarno | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2023-06-22 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" 9.28 | \n",
" Corporate Strategy & Communications | \n",
" Manager | \n",
" 1.213117e+07 | \n",
" NaN | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Cakrabuana Sitompul | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2023-04-04 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" 9.65 | \n",
" Marketing | \n",
" Staff | \n",
" 1.060575e+06 | \n",
" NaN | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Bagas Wulandari | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2023-03-25 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" 9.83 | \n",
" Corporate Strategy & Communications | \n",
" Manager | \n",
" 1.030081e+07 | \n",
" NaN | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Dimas Kuswandari | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-03-23 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" 9.77 | \n",
" Creative & Design | \n",
" Staff | \n",
" 4.602479e+06 | \n",
" NaN | \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Janet Utama | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2023-07-21 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" 9.08 | \n",
" Corporate Strategy & Communications | \n",
" Manager | \n",
" 1.405145e+07 | \n",
" NaN | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" employee_id Nama domisili jenis_kelamin \\\n",
"0 EM10510 Jayeng Winarno Kota Jakarta Utara Laki-laki \n",
"1 EM4322 Cakrabuana Sitompul Kabupaten Bekasi Perempuan \n",
"2 EM1637 Bagas Wulandari Kota Jakarta Barat Laki-laki \n",
"3 EM14613 Dimas Kuswandari Kota Jakarta Pusat Laki-laki \n",
"4 EM1084 Janet Utama Kabupaten Bogor Perempuan \n",
"\n",
" date_of_birth join_date resign_date marriage_stat dependant education \\\n",
"0 1983-09-11 2021-02-09 2023-06-22 Married 1 SLTA \n",
"1 1987-03-22 2022-02-28 2023-04-04 Married 1 SLTA \n",
"2 1970-04-27 2020-12-23 2023-03-25 Married 4 D2 \n",
"3 1988-06-10 2022-11-21 2024-03-23 Married 1 D3 \n",
"4 1977-05-25 2021-06-07 2023-07-21 Married 3 SLTA \n",
"\n",
" absent_90D avg_time_work departemen position \\\n",
"0 9.0 9.28 Corporate Strategy & Communications Manager \n",
"1 0.0 9.65 Marketing Staff \n",
"2 4.0 9.83 Corporate Strategy & Communications Manager \n",
"3 2.0 9.77 Creative & Design Staff \n",
"4 0.0 9.08 Corporate Strategy & Communications Manager \n",
"\n",
" income total_komp job_satisfaction performance_rating \\\n",
"0 1.213117e+07 NaN 4 3 \n",
"1 1.060575e+06 NaN 2 1 \n",
"2 1.030081e+07 NaN 3 3 \n",
"3 4.602479e+06 NaN 2 3 \n",
"4 1.405145e+07 NaN 4 3 \n",
"\n",
" churn_status \n",
"0 1 \n",
"1 1 \n",
"2 1 \n",
"3 1 \n",
"4 1 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.read_csv('D:/Tugas Akhir/Codingan/Development/App/data/all_data.csv')\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Melihat deskripsi data"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" dependant | \n",
" absent_90D | \n",
" avg_time_work | \n",
" income | \n",
" total_komp | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 15488.000000 | \n",
" 15173.000000 | \n",
" 15488.000000 | \n",
" 1.548800e+04 | \n",
" 1909.000000 | \n",
" 15488.000000 | \n",
" 15488.000000 | \n",
" 15488.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 1.450542 | \n",
" 4.267449 | \n",
" 9.447128 | \n",
" 6.870134e+06 | \n",
" 1.278156 | \n",
" 2.655282 | \n",
" 2.652247 | \n",
" 0.292162 | \n",
"
\n",
" \n",
" std | \n",
" 1.284839 | \n",
" 3.813911 | \n",
" 0.260906 | \n",
" 4.027861e+06 | \n",
" 1.151359 | \n",
" 1.010392 | \n",
" 1.022729 | \n",
" 0.454771 | \n",
"
\n",
" \n",
" min | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 9.000000 | \n",
" 1.003626e+06 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 9.220000 | \n",
" 3.582206e+06 | \n",
" 1.000000 | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 9.440000 | \n",
" 6.102698e+06 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 2.000000 | \n",
" 6.000000 | \n",
" 9.680000 | \n",
" 1.014167e+07 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 22.000000 | \n",
" 16.000000 | \n",
" 11.580000 | \n",
" 2.407564e+07 | \n",
" 24.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" dependant absent_90D avg_time_work income total_komp \\\n",
"count 15488.000000 15173.000000 15488.000000 1.548800e+04 1909.000000 \n",
"mean 1.450542 4.267449 9.447128 6.870134e+06 1.278156 \n",
"std 1.284839 3.813911 0.260906 4.027861e+06 1.151359 \n",
"min 0.000000 0.000000 9.000000 1.003626e+06 1.000000 \n",
"25% 0.000000 1.000000 9.220000 3.582206e+06 1.000000 \n",
"50% 1.000000 3.000000 9.440000 6.102698e+06 1.000000 \n",
"75% 2.000000 6.000000 9.680000 1.014167e+07 1.000000 \n",
"max 22.000000 16.000000 11.580000 2.407564e+07 24.000000 \n",
"\n",
" job_satisfaction performance_rating churn_status \n",
"count 15488.000000 15488.000000 15488.000000 \n",
"mean 2.655282 2.652247 0.292162 \n",
"std 1.010392 1.022729 0.454771 \n",
"min 1.000000 1.000000 0.000000 \n",
"25% 2.000000 2.000000 0.000000 \n",
"50% 3.000000 3.000000 0.000000 \n",
"75% 3.000000 3.000000 1.000000 \n",
"max 4.000000 4.000000 1.000000 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"desc = df.describe()\n",
"num_cols = 10\n",
"total_cols = len(desc.columns)\n",
"\n",
"desc_chunks = [desc.iloc[:, i:i+num_cols] for i in range(0, total_cols, num_cols)]\n",
"\n",
"for chunk in desc_chunks:\n",
" display(chunk)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Melihat data kosong"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" Nama | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 7972 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" employee_id Nama domisili jenis_kelamin date_of_birth join_date \\\n",
"0 0 0 0 0 0 0 \n",
"\n",
" resign_date marriage_stat dependant education \n",
"0 7972 0 0 0 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" absent_90D | \n",
" avg_time_work | \n",
" departemen | \n",
" position | \n",
" income | \n",
" total_komp | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 315 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 13579 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" absent_90D avg_time_work departemen position income total_komp \\\n",
"0 315 0 0 0 0 13579 \n",
"\n",
" job_satisfaction performance_rating churn_status \n",
"0 0 0 0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"na_counts = df.isna().sum()\n",
"\n",
"num_cols = 10\n",
"total_cols = len(na_counts)\n",
"\n",
"for i in range(0, total_cols, num_cols):\n",
" display(pd.DataFrame(na_counts[i:i+num_cols]).T)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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AgICtGXLFhUsWNC+RQPPEPMKxfLly3X27Fk5OTmpdOnSKlSokE6fPq0SJUqoWLFiGj9+vHLkyPHElTy6fCMxeNqgZCdPntTHH3+snDlzqlevXnr33Xef+hxTp05Vr169NGvWLH3yyScvs1wg3mK28T179ig8PFxJkiR55neRmMf0u3fvKnny5C+7VMC0f/vOEbMtr169Wl9//bUyZcqkli1bqnLlynFuhzcPV6pfsZjnMPbs2aO2bduqcuXKatOmjZYsWSI/Pz/t379fPXr00Lhx41S4cGFdunRJvr6+2rlzJ4EaiUL0F7BevXqpa9euWr58uTZt2qQiRYpo3bp1yp49u3bv3q29e/eqa9euOn78+BMfRARqJHQxp4hbsmSJvvvuO61evVpXr15Vzpw5tXDhQp06dUpjxozRli1bJEnlypXTyJEjbc8xZcoU9e7dWzNnziRQI8GJ2cb79u2revXqqV27dipbtqy++OILHT169Kn7RR/Tx48fr+7du+vBgwevrG7gec2aNUv379//16vMMa9YV61aVYMGDdLu3bv1xx9/PLEd3mAGXomFCxcax48ftz0+ffq0MWrUKGPIkCG2Zbt37zaKFCli1KhRw9i+fbs9ygRemPnz5xvp0qUz/vzzT8MwDGPOnDmGxWIx5s6da9vm9OnThsViMbp162avMgFTrFar7f979OhhpE2b1siePbuRO3du4/PPPzf++ecfwzAMY//+/UaBAgWMQoUKGW+//baRJ08eIywszDAMw1i0aJGRIkUKY/HixXZ5D8DzGjt2rJE2bVpj586dhmEYRt++fQ1XV1dj165dT2wb89/G1KlTjaRJkxoLFix4ZbUCz+vnn382smbNanz55ZfG/fv3DcMwjKioqKduH7Nt79q1y4iMjHzpNSLx4Er1K3Dx4kVNmDBBSZMmlSTdvn1b5cqV04ABA3Tt2jXbdkWLFtWkSZN06dIljRkzRqtXr7ZXycB/dvr0aX366acqXry4fv31V7Vv315Tp05Vo0aNFBISonPnzilbtmy6cOFCrCt3QGIQfUXi8OHDOnXqlFavXq0jR46oe/fuunz5srp06aKzZ8+qYMGCWrRokdq0aaOWLVvq0KFDtukRkyRJop9//ll16tSx51sBnmnv3r3q0aOHSpYsqSVLlmjSpEkaO3asSpQoofDwcNtVPKvVavu3MXXq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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Jumlah Data Sebelum Dihapus: 15488\n"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"numerical_columns = ['income', 'dependant', 'absent_90D', 'avg_time_work', 'total_komp']\n",
"\n",
"plt.figure(figsize=(12, 6))\n",
"sns.boxplot(data=df[numerical_columns])\n",
"plt.xticks(rotation=45, ha='right')\n",
"plt.title('Box Plot untuk Deteksi Outlier')\n",
"plt.show()\n",
"\n",
"print(f'Jumlah Data Sebelum Dihapus: {len(df)}')"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" join_date | \n",
" resign_date | \n",
" churn_status | \n",
"
\n",
" \n",
" \n",
" \n",
" 4231 | \n",
" EM4066 | \n",
" 2024-09-07 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 4340 | \n",
" EM10343 | \n",
" 2024-08-28 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 4675 | \n",
" EM11840 | \n",
" 2024-09-13 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 4920 | \n",
" EM7048 | \n",
" 2024-08-11 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 6632 | \n",
" EM14096 | \n",
" 2024-08-09 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 7189 | \n",
" EM5167 | \n",
" 2024-09-05 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 7402 | \n",
" EM8034 | \n",
" 2024-08-14 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 7488 | \n",
" EM0515 | \n",
" 2024-09-01 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 7523 | \n",
" EM0635 | \n",
" 2024-08-29 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 7528 | \n",
" EM3932 | \n",
" 2024-08-14 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 8175 | \n",
" EM9414 | \n",
" 2024-09-18 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 8955 | \n",
" EM9752 | \n",
" 2024-08-23 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 8959 | \n",
" EM9053 | \n",
" 2024-09-07 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 11155 | \n",
" EM5408 | \n",
" 2024-08-07 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 12300 | \n",
" EM11045 | \n",
" 2024-09-25 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 12713 | \n",
" EM6345 | \n",
" 2024-09-26 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 13095 | \n",
" EM10462 | \n",
" 2024-08-28 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 15129 | \n",
" EM1808 | \n",
" 2024-08-04 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
" 15150 | \n",
" EM10232 | \n",
" 2024-09-20 | \n",
" 2024-10-31 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" employee_id join_date resign_date churn_status\n",
"4231 EM4066 2024-09-07 2024-10-31 0\n",
"4340 EM10343 2024-08-28 2024-10-31 0\n",
"4675 EM11840 2024-09-13 2024-10-31 0\n",
"4920 EM7048 2024-08-11 2024-10-31 0\n",
"6632 EM14096 2024-08-09 2024-10-31 0\n",
"7189 EM5167 2024-09-05 2024-10-31 0\n",
"7402 EM8034 2024-08-14 2024-10-31 0\n",
"7488 EM0515 2024-09-01 2024-10-31 0\n",
"7523 EM0635 2024-08-29 2024-10-31 0\n",
"7528 EM3932 2024-08-14 2024-10-31 0\n",
"8175 EM9414 2024-09-18 2024-10-31 0\n",
"8955 EM9752 2024-08-23 2024-10-31 0\n",
"8959 EM9053 2024-09-07 2024-10-31 0\n",
"11155 EM5408 2024-08-07 2024-10-31 0\n",
"12300 EM11045 2024-09-25 2024-10-31 0\n",
"12713 EM6345 2024-09-26 2024-10-31 0\n",
"13095 EM10462 2024-08-28 2024-10-31 0\n",
"15129 EM1808 2024-08-04 2024-10-31 0\n",
"15150 EM10232 2024-09-20 2024-10-31 0"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"df_cek = df.copy()\n",
"\n",
"df_cek['join_date'] = pd.to_datetime(df_cek['join_date'])\n",
"df_cek['resign_date'] = pd.to_datetime(df_cek['resign_date'])\n",
"\n",
"df_cek['selisih_bulan'] = (df_cek['resign_date'] - df_cek['join_date']) / pd.Timedelta(days=30)\n",
"\n",
"df_cek_changed = df_cek[(df_cek['selisih_bulan'] < 3) & (df_cek['churn_status'] == 0)]\n",
"\n",
"df_cek.drop(columns=['selisih_bulan'], inplace=True)\n",
"\n",
"df_cek_changed[['employee_id', 'join_date', 'resign_date', 'churn_status']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Preprocessing"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 0 0 0 0 0 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D \n",
"0 0 0 0 0 0 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" avg_time_work | \n",
" departemen | \n",
" position | \n",
" income | \n",
" total_komp | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" avg_time_work departemen position income total_komp job_satisfaction \\\n",
"0 0 0 0 0 0 0 \n",
"\n",
" performance_rating churn_status \n",
"0 0 0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"kolom_tertentu = ['absent_90D', 'total_komp']\n",
"df[kolom_tertentu] = df[kolom_tertentu].fillna(0)\n",
"df['resign_date'] = '2024-10-31'\n",
"\n",
"na_counts = df.isna().sum()\n",
"\n",
"num_cols = 10\n",
"total_cols = len(na_counts)\n",
"\n",
"for i in range(0, total_cols, num_cols):\n",
" display(pd.DataFrame(na_counts[i:i+num_cols]).T)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" dependant | \n",
" absent_90D | \n",
" avg_time_work | \n",
" income | \n",
" total_komp | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 15488.000000 | \n",
" 15488.000000 | \n",
" 15488.000000 | \n",
" 1.548800e+04 | \n",
" 15488.000000 | \n",
" 15488.000000 | \n",
" 15488.000000 | \n",
" 15488.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 1.450542 | \n",
" 4.180656 | \n",
" 9.447128 | \n",
" 6.870134e+06 | \n",
" 0.157541 | \n",
" 2.655282 | \n",
" 2.652247 | \n",
" 0.293388 | \n",
"
\n",
" \n",
" std | \n",
" 1.284839 | \n",
" 3.822687 | \n",
" 0.260906 | \n",
" 4.027861e+06 | \n",
" 0.582986 | \n",
" 1.010392 | \n",
" 1.022729 | \n",
" 0.455330 | \n",
"
\n",
" \n",
" min | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 9.000000 | \n",
" 1.003626e+06 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 9.220000 | \n",
" 3.582206e+06 | \n",
" 0.000000 | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 9.440000 | \n",
" 6.102698e+06 | \n",
" 0.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 2.000000 | \n",
" 6.000000 | \n",
" 9.680000 | \n",
" 1.014167e+07 | \n",
" 0.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 22.000000 | \n",
" 16.000000 | \n",
" 11.580000 | \n",
" 2.407564e+07 | \n",
" 24.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" dependant absent_90D avg_time_work income total_komp \\\n",
"count 15488.000000 15488.000000 15488.000000 1.548800e+04 15488.000000 \n",
"mean 1.450542 4.180656 9.447128 6.870134e+06 0.157541 \n",
"std 1.284839 3.822687 0.260906 4.027861e+06 0.582986 \n",
"min 0.000000 0.000000 9.000000 1.003626e+06 0.000000 \n",
"25% 0.000000 1.000000 9.220000 3.582206e+06 0.000000 \n",
"50% 1.000000 3.000000 9.440000 6.102698e+06 0.000000 \n",
"75% 2.000000 6.000000 9.680000 1.014167e+07 0.000000 \n",
"max 22.000000 16.000000 11.580000 2.407564e+07 24.000000 \n",
"\n",
" job_satisfaction performance_rating churn_status \n",
"count 15488.000000 15488.000000 15488.000000 \n",
"mean 2.655282 2.652247 0.293388 \n",
"std 1.010392 1.022729 0.455330 \n",
"min 1.000000 1.000000 0.000000 \n",
"25% 2.000000 2.000000 0.000000 \n",
"50% 3.000000 3.000000 0.000000 \n",
"75% 3.000000 3.000000 1.000000 \n",
"max 4.000000 4.000000 1.000000 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"desc = df.describe()\n",
"num_cols = 10\n",
"total_cols = len(desc.columns)\n",
"\n",
"desc_chunks = [desc.iloc[:, i:i+num_cols] for i in range(0, total_cols, num_cols)]\n",
"\n",
"for chunk in desc_chunks:\n",
" display(chunk)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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hauGDRsqf/78GjhwoHbu3KnJkycrZ86c+uKLL+76GgcPHtT+/fvVvHlzeXp63rFM06ZN1bdvXy1ZskRvvPHGXdd1q6effloff/yx+vTpozZt2qhSpUqSpPLly//rdaT0/RswYIAyZMigbt26KS4uThkyZPjXr5Xck08+qcqVK2vNmjWKjo6+63sjSQkJCapRo4aCgoI0ePBgrV69WkOGDFHBggXVtm1be7kRI0bo5ZdfVpMmTRQfH6/Zs2fr9ddf15IlS1SnTh2Hda5bt05z5szR+++/Lzc3N40dO1Y1a9bU1q1b9cwzz6RoW/bs2aOXXnpJxYsX18cffyw3NzcdOnRIP//8c8reFADAvRkAwGNj2rRpRtJtDzc3NxMWFuZQdsGCBUaS+eSTTxymN2jQwNhsNnPo0CH7tNDQUOPi4mLWr19v5s6daySZ4cOH/2N91qxZYySZqVOnmrNnz5pTp06ZpUuXmnz58hmbzWa2bdtmjDHmyJEjRpKZNm2afdnAwECTM2dOc/78efu0X375xbi4uJimTZvapw0aNMhIMkeOHPlX71GfPn2MJJMpUyZTq1Yt8+mnn5odO3bcVu6rr74yLi4u5qeffnKYPn78eCPJ/Pzzz/ZpmTJlMs2aNbttHS1btjS5cuUy586dc5j+xhtvGC8vL3P16tW7bn/SvORmzZplJJn169fbp/Xt29dIMm+//bZD2fr165snnnji7m+E+bsNDBs27J7lPD09TalSpezP8+bNe8ftrVy5sqlcubL9+bZt227briTNmjUzefPmdZgmyfTt29f+/N++f0ntrECBAnd83+5EkmnXrt1d53fs2NFIMr/88osx5s6fUbNmzYwk8/HHHzssW7JkSVO6dGmHabfWKz4+3jzzzDPmhRdeuK1eksz27dvt044dO2bc3d1N/fr1HV771vfPmL/bQ5Jhw4YZSebs2bN33VYAwH/HpeYA8BgaM2aMVq1apVWrVmnmzJmqWrWqWrVqpe+//95e5ocffpCrq6vef/99h2W7du0qY4xDL+j9+vVTsWLF1KxZM7333nuqXLnybcvdy9tvv60cOXLIz89PderUsV+anfw+9OROnz6t3bt3q3nz5g5npYsXL67q1avrhx9++Nevfav+/fvrm2++UcmSJbVixQr16tVLpUuXVqlSpRwuY587d66efvppFSlSROfOnbM/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wYIF+umnn1SvXj2VLFlSkvTWW2/p22+/1bvvvqs1a9aoQoUKSkhI0L59+/Ttt99qxYoV9s7hSpcurdWrV2vo0KHy8/NT/vz5FRQUpM8//1xr1qxRUFCQWrduraJFi+rChQvauXOnVq9efcdQJN28BP7555/Xl19+qevXryt37txauXLlP457fj+aNGmibdu2acSIEfrjjz/UpEkTZc2aVTt37tTUqVP1xBNPaN68eUqfPr19mVatWmnevHmqWbOmGjZsqMOHD2vmzJn2NpOkYMGC8vb21vjx45UlSxZlypRJQUFB//o2hft9//6tAwcOaObMmTLGKDo6Wr/88ovmzp2rmJgYDR06VDVr1vxP609Sp04d+/r+97//6cyZMxozZowKFSp0x8v8n3nmGdWoUcNhODHpZseASd544w316NFD9evX1/vvv6+rV69q3LhxKly4sENo//jjj7V+/XrVqVNHefPm1ZkzZzR27FjlyZNHFStWfCDbBwCQcw8nJsnMnz/f/nzJkiX2IWKSP9KlS2caNmx42/LffPONSZcunYmIiEjFWgOAde40nJi7u7sJDAw048aNM4mJiQ7lL1++bDp37mz8/PxM+vTpzVNPPWUGDRpkL7djxw6TLl0606FDB4flbty4YcqWLWv8/PzMxYsX71qfpGGe5s6de89632moJmOMWb16talQoYLx8PAwnp6epm7duuaPP/64bfkBAwaY3LlzGxcXl3sOLXb9+nUzadIkU69ePZM3b17j5uZmMmbMaEqWLGkGDRpk4uLiHMrHx8ebL774whQrVsy4ubmZrFmzmtKlS5v+/fubqKgoe7l9+/aZ559/3nh4eBhJDkNtRUZGmnbt2hl/f3+TPn164+vra6pVq2YmTpx4z+3/66+/TP369Y23t7fx8vIyr7/+ujl16tRtQ24lDR9163BRSW3h3w6ztmDBAlO9enWTNWtW4+bmZgoVKmS6du1612GohgwZYnLnzm3c3NxMhQoVzPbt228bTswYYxYuXGiKFi1q0qVL57CN/2Y4MWP+3fv3b9vZra+V9HBxcTHe3t6mZMmSpmPHjmbPnj23lb/bcGKZMmW6reytQ3oZY8yUKVPMU089Zdzc3EyRIkXMtGnT7lhO/z/M2cyZM+3lS5YsadasWXPb66xcudI888wzJkOGDCYgIMDMnDnztnWGh4ebV155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ChQoYPbu3WuMubkDff31182ECRMIV07s0KFDJiAgwHz99dfGmJvtYdmyZcZms5nAwECza9cuY4wxS5YsMe3btzfe3t4mKCjIVK9e3X7fFu3DOf3555+mfPny9jF3ly1bZipVqmTefvtt+3fH5cuXTUhIiGnbtm1aVhUWuvXvO/ltBFOmTDHBwcGmSZMmtx03zJgxg1sOnNjRo0dNzpw5Tbp06cxXX33lMC8uLs4sXrzYFClShLGXHxNHjx41NpvNdOzY0XTt2tV4enqa3377zRhzsz20adPmtvC9dOlS89prr3EMkUpsxtxyPQIeKPP/l3QdOnRIJ0+eVPbs2eXl5aU8efLowoULKlmypHLlyqWJEyeqePHi9uWuX7+u9OnTp2HN8aAl72F69+7dGjRokGbPnq158+apfv36kqSffvpJ77zzjlq0aKGXX35Z3bp1U44cOeyXpickJNDjqBPasmWLGjdurHXr1tl7MD99+rQaNmyos2fPSpL27Nlj/+zPnz8vFxcXeXt7y2az0Xu5E7nT33hoaKhWrVqlJUuWyNfXV9OmTdOMGTO0f/9+PfXUU7p8+bKuX7+unTt3Kn369FxK7GSSj1oxZswYbdy4UdevX1epUqXUs2dPSdLkyZMVFhamfPny6bPPPtOTTz7psA6+O5xHUntITEzUkSNH9NJLL+natWsqW7asOnXqpAoVKtjLxsfHa9WqVWrcuLFatmypYcOGpWHNYTVjjFauXKm6devK3d1dO3fuVKFChRQXFyc3NzfFx8erQ4cO+uWXX/T666+rTZs2ypIli315RsixHu+uhZIOfr777jtVrlxZb7/9tl544QU1btxYS5YsUbZs2bRr1y5FRETovffe086dO+3LErqdT1IwCg0NVevWrXX16lVlzZpVDRo00KxZsyRJgYGBqlChgiZMmKCqVavqzJkzmjBhgv2+PA6cnFPSF9+6devs09avX6+oqChNmTJF8fHx+uyzzyTd/GJ84oknlDVrVtlsNiUmJhK6nUjS3/i3336r8PBwSTeHg7px44Zat24tSWrRooWGDh2qQYMGqUyZMmrWrJl27dql9OnT68aNG4RuJ5N0INyzZ0/1799fnp6eypQpk/r37686derozJkzatWqld5880399ddfevfdd+39xCThu8M5JA9Gy5cvl6+vr/bu3asVK1bot99+06BB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MmfOrJiYGFWoUEErV65Uw4YNHUL39OnTVaRIEVWqVEnvvfeeXFxc1Lp1a7m6utrv5YTzSZcunTJmzCh3d3ft2bNHYWFh+u6773Tjxg0lJiZq48aNqlWrlsMyCQkJhG4nkXTQY7PZdOLECQ0bNkwZM2bUV199pYIFC+qDDz7QF198oe+++042m03dunWTJOXJk0efffaZwzrgHJLfgpIhQwZlyJDBfglxr169tGzZMklyCN8+Pj4qX768fR20CeeRvD2kT59e6dOnV9++fSVJn376qZYsWaKePXvaw7ck/f7775owYYI49+W8kn6sTf7/2NhYubq6Kj4+XpLjfmDFihU6e/as/fakJOwnnAs3pOKxY4yRt7e35syZo5w5c2rmzJmaPHmypJv3YTZs2FANGzbUiBEj9M4770iSzp49q1mzZunAgQOSpFy5cqlNmzYaMGCAgoOD02xb8GAlJibeNi1dunRyd3dX69atVb58eUVFRal///5atGiRPDw8tHnz5tuW4YvSOZw7d87+WX799dfy9/fXgAED5OnpqRYtWujQoUN68skn1aNHD5UpU0bz58+3H3AnR3twHslD1tSpU9W2bVt16tRJEydOlHQzaL300ktavXq1vvjiC/32228KCQmxXxmVFLRoE84heXtYsmSJhg4dqjlz5ujXX3+VJHXv3l0vvfSSfv31V3Xu3FmHDh1SSEiIQkNDJd3sUI/w7XwSExPtofvGjRv2/1epUkX58uVT27ZtdeHCBft+4Nq1axo7dqz27NmTZnVG6uBSczx2kv/CuGnTJoWGhurq1asKDQ1VQECAWrRooWvXrunXX39VXFycrl27pv/973+KiYnRmjVrHA6YOGvhPJL/Or1v3z5dvXpVgYGBcnFx0Y4dO7Rt2zb5+/urcuXKypw5s6KiolS1alV9/PHHeumll9K49njQVqxYofbt22vFihUaOXKkJkyYoCNHjsjX11eLFi3SqFGjFBcXp6lTp6pQoUI6ceKEevbsqUyZMmnChAn0UO3kunfvrrCwMIWEhCgqKkqrVq1S48aNNX36dEnSxx9/rEWLFunMmTPKnTu31q1bpwwZMqRxrfEgJf/O6NGjh2bNmqXcuXPL1dVVrq6u6tOnj6pVq6br169r5MiRmj17tk6ePKm8efPSHh4TQ4cOVXh4uHLnzq2qVauqcePGOnTokOrV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3uzZsweA559/npiYGP72t78xZcoUwsLCyMvLY8OGDQA8+eSTPPPMMwCUK1fu4X4BEXmg+vfvT0FBAd7e3ly5coUzZ86wfft21q9fz/Hjx/H392ft2rWsXr2avLw8u2HHRXc4mDx5Mp9++imtWrUqzq8jf5Ki944tW7YQGxvLe++9R2hoKC4uLnz88cckJyfbPuPn50dISAi//PILtWrVKo4iy2PGZPy6hSIiIuIALly4YNcYOnToEG3btiUmJoa33nrL9vrFixcpV64cbm5uwL1FdFatWsWuXbvu21pMRBzD999/T58+fXB2dsbV1ZU1a9bY/b8HBwezZs0aUlNTKV++/H2hW4stOq6EhAQ2bdqEh4cHo0aNAmD16tVERETg4eFBUFCQ3dSCwmtDq5fL79HVISIiDmfx4sX07NmT4OBgbt68yd27d2ndujWBgYF88cUX/PTTT7ZerBo1auDm5saxY8cYOXIkCxcuZN26dQrdIg6sZcuWrFmzhipVqnD06FFu3boFQE5ODgBTpkzhxo0b7Ny5E/j36tYLFixg3LhxWmzRgRTeCwAOHDhAZGQka9as4dq1a7bX33jjDcaOHcuJEyeIiori4MGDtvcK93lX6JbfoytEREQee0UbTgB/+ctfeP3114mPj8fLy4uwsDAuXLhAt27dOH36NBcvXsTJyYmCggJbg7pixYq8/PLL7N+/nxYtWhTH1xCRB+TXdQTcW5V83rx51K1bF39/f27cuIHZbAbg6tWruLm5Ub58edvnDx48yKxZs1i2bBk9e/Z8aGWXB6swME+aNIlDhw4xbNgwmjdvzurVq9m7d6/tc2+88QbBwcF89dVXbN++3e4cWr1c/ggNNRcRkcda0eF927dv5+bNm7i5ueHt7U1ubi6zZs1i9+7dHDp0iOnTpxMWFoanpyfbtm2zrWhcqOhwUhFxDEXriO+++47MzExq1KhBvXr1KF++PElJSfTu3RtXV1dGjRpFpUqVWLBgARkZGRw+fNiunvjhhx9o0qRJcX0V+RMVre937tzJm2++SWJiIi1atGDr1q3MnTsXZ2dnJk+eTNu2bW3H7dixg44dO953/xD5PQreIiLy2CracJo4cSIrV66katWqnDx5ktdff53w8HCefvppcnJyWLBgARs3buSbb76hTZs27N69WyFbxIEVNnEL/88nTJjAqlWrMJvN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l5cXaWlpmEwmAgMDGTx4MPv27SMkJIRr166xfft2qlevXtzFFdE+3iIiIiIi8viIjY0lNjaWhIQEvvzySywWCykpKbi5uQHQrl075syZQ25uLsHBwcVbWJH/psXVRERERETksZGWlkaHDh1o1aoVX375JaNHj2bevHn07NmTrKwsfv75Z9q0acPatWt5/vnni7u4IoB6vEVERERE5BFVUFBw32u3bt2ibt26HDhwgMGDBzN79mxGjBiBYRh8+eWXrFu3jtzcXJo0aUKpUqXIz88vhpKL2NMcbxEREREReeQUXUjtzJkzlC1blqpVq3Lo0CFeeuklANasWWPbm/3WrVv07NmTJk2aEBERUWzlFvkt6vEWEREREZFHimEYttAdEhKCj48PzZo1469//SvHjh1j8eLFmM1mcnNzOXfuHMePH6dXr15cuXKF2bNnF3PpRe6nHm8REREREXlkFO3pXr16NUFBQSxYsIDMzExSUlKIiopi0KBBPP/880yYMIGKFSvy1FNPUbFiRbZu3YqLiwv5+fmUKlWqmL+JyL9pcTUREREREXlkFIbur7/+mq+++orx48fj6+sLwI0bN6hbty4hISHExsaSkpJCeno6FSpUoHnz5jg5OZGXl4ezs2KOPFrU4y0iIiIiIo+Uy5cv89JLL/Hzzz8zYcIEJk2aZHvv6tWr+Pv7U7t2bT7++GO744r2los8SnRVioiIiIjII6V69epYrVaqVauG1WolOTnZ9l7lypWpUqUKZ86cue84hW55VOnKFBERERGRR06zZs2wWq3k5+cTGRnJkSNHALh58yapqanUqlWreAso8h/QUHMREREREXlkJScn079/f3755RdatWqF2Wzm7NmzHDhwALPZjGEYmEym4i6myP9KPd4iIiIiIvLIatGiBWvWrKFs2bJcv36dzp07k5SUZNtOTKFbHgcK3iIiIiIi8khr0qQJVquVnJwckpKSSEtLA8DFxaWYSybyx2iouYiIiIiIPBaSk5MZMWIE7u7uhIWF8dxzzxV3kUT+EPV4i4iIiIjIY6FFixbMnz+fS5cu4erqWtzFEfnD1OMtIiIiIiKPlbt371KmTJniLobIH6bgLSIiIiIiIvIAaai5iIiIiIiIyAOk4C0iIiIiIiLyACl4i4iIiIiIiDxACt4iIiIiIiIiD5CCt4iIiIiIiMgDpOAtIiIiIiIi8gApeIuIiIiIiIg8QAreIiIiIiIiIg/Q/wNvBxO0yQ15EwAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Jumlah Data Sesudah Dihapus: 13066\n"
]
}
],
"source": [
"numerical_columns = ['income', 'dependant', 'absent_90D', 'avg_time_work', 'total_komp', 'job_satisfaction', 'performance_rating']\n",
"\n",
"for col in numerical_columns:\n",
" Q1 = df[col].quantile(0.25)\n",
" Q3 = df[col].quantile(0.75)\n",
" IQR = Q3 - Q1\n",
"\n",
" lower_bound = Q1 - 1.5 * IQR\n",
" upper_bound = Q3 + 1.5 * IQR\n",
"\n",
" df = df[(df[col] >= lower_bound) & (df[col] <= upper_bound)]\n",
"\n",
"plt.figure(figsize=(12, 6))\n",
"sns.boxplot(data=df[numerical_columns])\n",
"plt.xticks(rotation=45, ha='right')\n",
"plt.title('Box Plot Setelah Outlier Dihapus')\n",
"plt.show()\n",
"\n",
"print(f'Jumlah Data Sesudah Dihapus: {len(df)}')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Jumlah baris sebelum filter: 13066\n",
"Jumlah baris dengan resign_date - join_date < 3 bulan sebelum filter: 443\n",
"Jumlah baris setelah filter: 12623\n"
]
}
],
"source": [
"import pandas as pd\n",
"\n",
"# Jumlah baris sebelum filter\n",
"print(f\"Jumlah baris sebelum filter: {df.shape[0]}\")\n",
"\n",
"df['join_date'] = pd.to_datetime(df['join_date'])\n",
"df['resign_date'] = pd.to_datetime(df['resign_date'])\n",
"\n",
"# Hitung jumlah yang resign kurang dari 3 bulan setelah join\n",
"short_term_resign = df[(df['resign_date'] - df['join_date']).dt.days < 90]\n",
"print(f\"Jumlah baris dengan resign_date - join_date < 3 bulan sebelum filter: {short_term_resign.shape[0]}\")\n",
"\n",
"# Lakukan filter (hapus yang kurang dari 3 bulan)\n",
"df = df[(df['resign_date'] - df['join_date']).dt.days >= 90]\n",
"\n",
"# Jumlah baris setelah filter\n",
"print(f\"Jumlah baris setelah filter: {df.shape[0]}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Feature Engineering"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" avg_time_work | \n",
" departemen | \n",
" position | \n",
" income | \n",
" total_komp | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
" active_work | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" 9.28 | \n",
" Corporate Strategy & Communications | \n",
" Manager | \n",
" 1.213117e+07 | \n",
" 0.0 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 1360 | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" 9.65 | \n",
" Marketing | \n",
" Staff | \n",
" 1.060575e+06 | \n",
" 0.0 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 976 | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" 9.83 | \n",
" Corporate Strategy & Communications | \n",
" Manager | \n",
" 1.030081e+07 | \n",
" 0.0 | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 1408 | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" 9.77 | \n",
" Creative & Design | \n",
" Staff | \n",
" 4.602479e+06 | \n",
" 0.0 | \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
" 710 | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" 9.08 | \n",
" Corporate Strategy & Communications | \n",
" Manager | \n",
" 1.405145e+07 | \n",
" 0.0 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 1242 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 EM10510 Kota Jakarta Utara Laki-laki 1983-09-11 2021-02-09 \n",
"1 EM4322 Kabupaten Bekasi Perempuan 1987-03-22 2022-02-28 \n",
"2 EM1637 Kota Jakarta Barat Laki-laki 1970-04-27 2020-12-23 \n",
"3 EM14613 Kota Jakarta Pusat Laki-laki 1988-06-10 2022-11-21 \n",
"4 EM1084 Kabupaten Bogor Perempuan 1977-05-25 2021-06-07 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D avg_time_work \\\n",
"0 2024-10-31 Married 1 SLTA 9.0 9.28 \n",
"1 2024-10-31 Married 1 SLTA 0.0 9.65 \n",
"2 2024-10-31 Married 4 D2 4.0 9.83 \n",
"3 2024-10-31 Married 1 D3 2.0 9.77 \n",
"4 2024-10-31 Married 3 SLTA 0.0 9.08 \n",
"\n",
" departemen position income total_komp \\\n",
"0 Corporate Strategy & Communications Manager 1.213117e+07 0.0 \n",
"1 Marketing Staff 1.060575e+06 0.0 \n",
"2 Corporate Strategy & Communications Manager 1.030081e+07 0.0 \n",
"3 Creative & Design Staff 4.602479e+06 0.0 \n",
"4 Corporate Strategy & Communications Manager 1.405145e+07 0.0 \n",
"\n",
" job_satisfaction performance_rating churn_status active_work \n",
"0 4 3 1 1360 \n",
"1 2 1 1 976 \n",
"2 3 3 1 1408 \n",
"3 2 3 1 710 \n",
"4 4 3 1 1242 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"active_work\"] = (df[\"resign_date\"] - df[\"join_date\"]).dt.days\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" ... | \n",
" income | \n",
" total_komp | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
" active_work | \n",
" active_work_months | \n",
" income_3_months | \n",
" income_6_months | \n",
" total_income_work | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" ... | \n",
" 1.213117e+07 | \n",
" 0.0 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 1360 | \n",
" 45 | \n",
" 3.639351e+07 | \n",
" 7.278702e+07 | \n",
" 5.459027e+08 | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 1.060575e+06 | \n",
" 0.0 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 976 | \n",
" 32 | \n",
" 3.181725e+06 | \n",
" 6.363450e+06 | \n",
" 3.393840e+07 | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" ... | \n",
" 1.030081e+07 | \n",
" 0.0 | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 1408 | \n",
" 46 | \n",
" 3.090244e+07 | \n",
" 6.180489e+07 | \n",
" 4.738375e+08 | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" ... | \n",
" 4.602479e+06 | \n",
" 0.0 | \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
" 710 | \n",
" 23 | \n",
" 1.380744e+07 | \n",
" 2.761487e+07 | \n",
" 1.058570e+08 | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 1.405145e+07 | \n",
" 0.0 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 1242 | \n",
" 41 | \n",
" 4.215435e+07 | \n",
" 8.430870e+07 | \n",
" 5.761095e+08 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 23 columns
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 EM10510 Kota Jakarta Utara Laki-laki 1983-09-11 2021-02-09 \n",
"1 EM4322 Kabupaten Bekasi Perempuan 1987-03-22 2022-02-28 \n",
"2 EM1637 Kota Jakarta Barat Laki-laki 1970-04-27 2020-12-23 \n",
"3 EM14613 Kota Jakarta Pusat Laki-laki 1988-06-10 2022-11-21 \n",
"4 EM1084 Kabupaten Bogor Perempuan 1977-05-25 2021-06-07 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D ... \\\n",
"0 2024-10-31 Married 1 SLTA 9.0 ... \n",
"1 2024-10-31 Married 1 SLTA 0.0 ... \n",
"2 2024-10-31 Married 4 D2 4.0 ... \n",
"3 2024-10-31 Married 1 D3 2.0 ... \n",
"4 2024-10-31 Married 3 SLTA 0.0 ... \n",
"\n",
" income total_komp job_satisfaction performance_rating churn_status \\\n",
"0 1.213117e+07 0.0 4 3 1 \n",
"1 1.060575e+06 0.0 2 1 1 \n",
"2 1.030081e+07 0.0 3 3 1 \n",
"3 4.602479e+06 0.0 2 3 1 \n",
"4 1.405145e+07 0.0 4 3 1 \n",
"\n",
" active_work active_work_months income_3_months income_6_months \\\n",
"0 1360 45 3.639351e+07 7.278702e+07 \n",
"1 976 32 3.181725e+06 6.363450e+06 \n",
"2 1408 46 3.090244e+07 6.180489e+07 \n",
"3 710 23 1.380744e+07 2.761487e+07 \n",
"4 1242 41 4.215435e+07 8.430870e+07 \n",
"\n",
" total_income_work \n",
"0 5.459027e+08 \n",
"1 3.393840e+07 \n",
"2 4.738375e+08 \n",
"3 1.058570e+08 \n",
"4 5.761095e+08 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"active_work\"] = (df[\"resign_date\"] - df[\"join_date\"]).dt.days\n",
"df[\"active_work_months\"] = df[\"active_work\"] // 30\n",
"df[\"income_3_months\"] = df[\"income\"] * 3\n",
"df[\"income_6_months\"] = df[\"income\"] * 6\n",
"df[\"total_income_work\"] = df[\"income\"] * df[\"active_work_months\"]\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" ... | \n",
" job_satisfaction | \n",
" performance_rating | \n",
" churn_status | \n",
" active_work | \n",
" active_work_months | \n",
" income_3_months | \n",
" income_6_months | \n",
" total_income_work | \n",
" income_dependant_ratio | \n",
" work_efficiency | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" ... | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 1360 | \n",
" 45 | \n",
" 3.639351e+07 | \n",
" 7.278702e+07 | \n",
" 5.459027e+08 | \n",
" 6.065585e+06 | \n",
" 1.16000 | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 976 | \n",
" 32 | \n",
" 3.181725e+06 | \n",
" 6.363450e+06 | \n",
" 3.393840e+07 | \n",
" 5.302875e+05 | \n",
" 1.20625 | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" ... | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 1408 | \n",
" 46 | \n",
" 3.090244e+07 | \n",
" 6.180489e+07 | \n",
" 4.738375e+08 | \n",
" 2.060163e+06 | \n",
" 1.22875 | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" ... | \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
" 710 | \n",
" 23 | \n",
" 1.380744e+07 | \n",
" 2.761487e+07 | \n",
" 1.058570e+08 | \n",
" 2.301240e+06 | \n",
" 1.22125 | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 1242 | \n",
" 41 | \n",
" 4.215435e+07 | \n",
" 8.430870e+07 | \n",
" 5.761095e+08 | \n",
" 3.512863e+06 | \n",
" 1.13500 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 25 columns
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 EM10510 Kota Jakarta Utara Laki-laki 1983-09-11 2021-02-09 \n",
"1 EM4322 Kabupaten Bekasi Perempuan 1987-03-22 2022-02-28 \n",
"2 EM1637 Kota Jakarta Barat Laki-laki 1970-04-27 2020-12-23 \n",
"3 EM14613 Kota Jakarta Pusat Laki-laki 1988-06-10 2022-11-21 \n",
"4 EM1084 Kabupaten Bogor Perempuan 1977-05-25 2021-06-07 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D ... \\\n",
"0 2024-10-31 Married 1 SLTA 9.0 ... \n",
"1 2024-10-31 Married 1 SLTA 0.0 ... \n",
"2 2024-10-31 Married 4 D2 4.0 ... \n",
"3 2024-10-31 Married 1 D3 2.0 ... \n",
"4 2024-10-31 Married 3 SLTA 0.0 ... \n",
"\n",
" job_satisfaction performance_rating churn_status active_work \\\n",
"0 4 3 1 1360 \n",
"1 2 1 1 976 \n",
"2 3 3 1 1408 \n",
"3 2 3 1 710 \n",
"4 4 3 1 1242 \n",
"\n",
" active_work_months income_3_months income_6_months total_income_work \\\n",
"0 45 3.639351e+07 7.278702e+07 5.459027e+08 \n",
"1 32 3.181725e+06 6.363450e+06 3.393840e+07 \n",
"2 46 3.090244e+07 6.180489e+07 4.738375e+08 \n",
"3 23 1.380744e+07 2.761487e+07 1.058570e+08 \n",
"4 41 4.215435e+07 8.430870e+07 5.761095e+08 \n",
"\n",
" income_dependant_ratio work_efficiency \n",
"0 6.065585e+06 1.16000 \n",
"1 5.302875e+05 1.20625 \n",
"2 2.060163e+06 1.22875 \n",
"3 2.301240e+06 1.22125 \n",
"4 3.512863e+06 1.13500 \n",
"\n",
"[5 rows x 25 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"income_dependant_ratio\"] = df[\"income\"] / (df[\"dependant\"] + 1)\n",
"df[\"work_efficiency\"] = df[\"avg_time_work\"] / 8\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" ... | \n",
" performance_rating | \n",
" churn_status | \n",
" active_work | \n",
" active_work_months | \n",
" income_3_months | \n",
" income_6_months | \n",
" total_income_work | \n",
" income_dependant_ratio | \n",
" work_efficiency | \n",
" active_work_category | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 1360 | \n",
" 45 | \n",
" 3.639351e+07 | \n",
" 7.278702e+07 | \n",
" 5.459027e+08 | \n",
" 6.065585e+06 | \n",
" 1.16000 | \n",
" Long-term | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 976 | \n",
" 32 | \n",
" 3.181725e+06 | \n",
" 6.363450e+06 | \n",
" 3.393840e+07 | \n",
" 5.302875e+05 | \n",
" 1.20625 | \n",
" Mid-term | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 1408 | \n",
" 46 | \n",
" 3.090244e+07 | \n",
" 6.180489e+07 | \n",
" 4.738375e+08 | \n",
" 2.060163e+06 | \n",
" 1.22875 | \n",
" Long-term | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 710 | \n",
" 23 | \n",
" 1.380744e+07 | \n",
" 2.761487e+07 | \n",
" 1.058570e+08 | \n",
" 2.301240e+06 | \n",
" 1.22125 | \n",
" Mid-term | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 1242 | \n",
" 41 | \n",
" 4.215435e+07 | \n",
" 8.430870e+07 | \n",
" 5.761095e+08 | \n",
" 3.512863e+06 | \n",
" 1.13500 | \n",
" Long-term | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 26 columns
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 EM10510 Kota Jakarta Utara Laki-laki 1983-09-11 2021-02-09 \n",
"1 EM4322 Kabupaten Bekasi Perempuan 1987-03-22 2022-02-28 \n",
"2 EM1637 Kota Jakarta Barat Laki-laki 1970-04-27 2020-12-23 \n",
"3 EM14613 Kota Jakarta Pusat Laki-laki 1988-06-10 2022-11-21 \n",
"4 EM1084 Kabupaten Bogor Perempuan 1977-05-25 2021-06-07 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D ... \\\n",
"0 2024-10-31 Married 1 SLTA 9.0 ... \n",
"1 2024-10-31 Married 1 SLTA 0.0 ... \n",
"2 2024-10-31 Married 4 D2 4.0 ... \n",
"3 2024-10-31 Married 1 D3 2.0 ... \n",
"4 2024-10-31 Married 3 SLTA 0.0 ... \n",
"\n",
" performance_rating churn_status active_work active_work_months \\\n",
"0 3 1 1360 45 \n",
"1 1 1 976 32 \n",
"2 3 1 1408 46 \n",
"3 3 1 710 23 \n",
"4 3 1 1242 41 \n",
"\n",
" income_3_months income_6_months total_income_work \\\n",
"0 3.639351e+07 7.278702e+07 5.459027e+08 \n",
"1 3.181725e+06 6.363450e+06 3.393840e+07 \n",
"2 3.090244e+07 6.180489e+07 4.738375e+08 \n",
"3 1.380744e+07 2.761487e+07 1.058570e+08 \n",
"4 4.215435e+07 8.430870e+07 5.761095e+08 \n",
"\n",
" income_dependant_ratio work_efficiency active_work_category \n",
"0 6.065585e+06 1.16000 Long-term \n",
"1 5.302875e+05 1.20625 Mid-term \n",
"2 2.060163e+06 1.22875 Long-term \n",
"3 2.301240e+06 1.22125 Mid-term \n",
"4 3.512863e+06 1.13500 Long-term \n",
"\n",
"[5 rows x 26 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def categorize_work_duration_months(months):\n",
" if months < 12:\n",
" return \"Short-term\"\n",
" elif 12 <= months <= 36:\n",
" return \"Mid-term\"\n",
" else:\n",
" return \"Long-term\"\n",
"\n",
"df['active_work_category'] = df['active_work_months'].apply(categorize_work_duration_months)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" ... | \n",
" total_income_work | \n",
" income_dependant_ratio | \n",
" work_efficiency | \n",
" active_work_category | \n",
" work_stability_score | \n",
" position_score | \n",
" job_income_position_score | \n",
" education_score | \n",
" education_income_ratio | \n",
" weighted_satisfaction_performance | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" ... | \n",
" 5.459027e+08 | \n",
" 6.065585e+06 | \n",
" 1.16000 | \n",
" Long-term | \n",
" 4.500000 | \n",
" 4 | \n",
" 3.032793e+06 | \n",
" 1 | \n",
" 1.213117e+07 | \n",
" 3.6 | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 3.393840e+07 | \n",
" 5.302875e+05 | \n",
" 1.20625 | \n",
" Mid-term | \n",
" 32.000000 | \n",
" 1 | \n",
" 1.060575e+06 | \n",
" 1 | \n",
" 1.060575e+06 | \n",
" 1.6 | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" ... | \n",
" 4.738375e+08 | \n",
" 2.060163e+06 | \n",
" 1.22875 | \n",
" Long-term | \n",
" 9.200000 | \n",
" 4 | \n",
" 2.575204e+06 | \n",
" 3 | \n",
" 3.433605e+06 | \n",
" 3.0 | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" ... | \n",
" 1.058570e+08 | \n",
" 2.301240e+06 | \n",
" 1.22125 | \n",
" Mid-term | \n",
" 7.666667 | \n",
" 1 | \n",
" 4.602479e+06 | \n",
" 4 | \n",
" 1.150620e+06 | \n",
" 2.4 | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 5.761095e+08 | \n",
" 3.512863e+06 | \n",
" 1.13500 | \n",
" Long-term | \n",
" 41.000000 | \n",
" 4 | \n",
" 3.512863e+06 | \n",
" 1 | \n",
" 1.405145e+07 | \n",
" 3.6 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 32 columns
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 EM10510 Kota Jakarta Utara Laki-laki 1983-09-11 2021-02-09 \n",
"1 EM4322 Kabupaten Bekasi Perempuan 1987-03-22 2022-02-28 \n",
"2 EM1637 Kota Jakarta Barat Laki-laki 1970-04-27 2020-12-23 \n",
"3 EM14613 Kota Jakarta Pusat Laki-laki 1988-06-10 2022-11-21 \n",
"4 EM1084 Kabupaten Bogor Perempuan 1977-05-25 2021-06-07 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D ... \\\n",
"0 2024-10-31 Married 1 SLTA 9.0 ... \n",
"1 2024-10-31 Married 1 SLTA 0.0 ... \n",
"2 2024-10-31 Married 4 D2 4.0 ... \n",
"3 2024-10-31 Married 1 D3 2.0 ... \n",
"4 2024-10-31 Married 3 SLTA 0.0 ... \n",
"\n",
" total_income_work income_dependant_ratio work_efficiency \\\n",
"0 5.459027e+08 6.065585e+06 1.16000 \n",
"1 3.393840e+07 5.302875e+05 1.20625 \n",
"2 4.738375e+08 2.060163e+06 1.22875 \n",
"3 1.058570e+08 2.301240e+06 1.22125 \n",
"4 5.761095e+08 3.512863e+06 1.13500 \n",
"\n",
" active_work_category work_stability_score position_score \\\n",
"0 Long-term 4.500000 4 \n",
"1 Mid-term 32.000000 1 \n",
"2 Long-term 9.200000 4 \n",
"3 Mid-term 7.666667 1 \n",
"4 Long-term 41.000000 4 \n",
"\n",
" job_income_position_score education_score education_income_ratio \\\n",
"0 3.032793e+06 1 1.213117e+07 \n",
"1 1.060575e+06 1 1.060575e+06 \n",
"2 2.575204e+06 3 3.433605e+06 \n",
"3 4.602479e+06 4 1.150620e+06 \n",
"4 3.512863e+06 1 1.405145e+07 \n",
"\n",
" weighted_satisfaction_performance \n",
"0 3.6 \n",
"1 1.6 \n",
"2 3.0 \n",
"3 2.4 \n",
"4 3.6 \n",
"\n",
"[5 rows x 32 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Menghitung berbagai fitur baru\n",
"\n",
"# Work Stability Score\n",
"df['work_stability_score'] = df['active_work_months'] / (df['absent_90D'] + 1)\n",
"\n",
"# Job Income to Position Score\n",
"position_score_mapping = {'Junior': 2, 'Staff': 1, 'Senior': 3, 'Manager': 4}\n",
"df['position_score'] = df['position'].map(position_score_mapping)\n",
"df['job_income_position_score'] = df['income'] / df['position_score']\n",
"\n",
"# Education-Adjusted Income\n",
"education_score_mapping = {'SLTA': 1, 'D1': 2, 'D2': 3, 'D3': 4, 'S1': 5, 'S2': 6, 'S3': 7}\n",
"df['education_score'] = df['education'].map(education_score_mapping)\n",
"df['education_income_ratio'] = df['income'] / df['education_score']\n",
"\n",
"# Weighted Satisfaction-Performance Score\n",
"df['weighted_satisfaction_performance'] = (\n",
" 0.6 * df['job_satisfaction'] + 0.4 * df['performance_rating']\n",
")\n",
"\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" ... | \n",
" total_income_work | \n",
" income_dependant_ratio | \n",
" work_efficiency | \n",
" active_work_category | \n",
" work_stability_score | \n",
" position_score | \n",
" job_income_position_score | \n",
" education_score | \n",
" education_income_ratio | \n",
" weighted_satisfaction_performance | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" ... | \n",
" 5.459027e+08 | \n",
" 6.065585e+06 | \n",
" 1.16000 | \n",
" Long-term | \n",
" 4.500000 | \n",
" 4 | \n",
" 3.032793e+06 | \n",
" 1 | \n",
" 1.213117e+07 | \n",
" 3.6 | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 3.393840e+07 | \n",
" 5.302875e+05 | \n",
" 1.20625 | \n",
" Mid-term | \n",
" 32.000000 | \n",
" 1 | \n",
" 1.060575e+06 | \n",
" 1 | \n",
" 1.060575e+06 | \n",
" 1.6 | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" ... | \n",
" 4.738375e+08 | \n",
" 2.060163e+06 | \n",
" 1.22875 | \n",
" Long-term | \n",
" 9.200000 | \n",
" 4 | \n",
" 2.575204e+06 | \n",
" 3 | \n",
" 3.433605e+06 | \n",
" 3.0 | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" ... | \n",
" 1.058570e+08 | \n",
" 2.301240e+06 | \n",
" 1.22125 | \n",
" Mid-term | \n",
" 7.666667 | \n",
" 1 | \n",
" 4.602479e+06 | \n",
" 4 | \n",
" 1.150620e+06 | \n",
" 2.4 | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 5.761095e+08 | \n",
" 3.512863e+06 | \n",
" 1.13500 | \n",
" Long-term | \n",
" 41.000000 | \n",
" 4 | \n",
" 3.512863e+06 | \n",
" 1 | \n",
" 1.405145e+07 | \n",
" 3.6 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 32 columns
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 EM10510 Kota Jakarta Utara Laki-laki 1983-09-11 2021-02-09 \n",
"1 EM4322 Kabupaten Bekasi Perempuan 1987-03-22 2022-02-28 \n",
"2 EM1637 Kota Jakarta Barat Laki-laki 1970-04-27 2020-12-23 \n",
"3 EM14613 Kota Jakarta Pusat Laki-laki 1988-06-10 2022-11-21 \n",
"4 EM1084 Kabupaten Bogor Perempuan 1977-05-25 2021-06-07 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D ... \\\n",
"0 2024-10-31 Married 1 SLTA 9.0 ... \n",
"1 2024-10-31 Married 1 SLTA 0.0 ... \n",
"2 2024-10-31 Married 4 D2 4.0 ... \n",
"3 2024-10-31 Married 1 D3 2.0 ... \n",
"4 2024-10-31 Married 3 SLTA 0.0 ... \n",
"\n",
" total_income_work income_dependant_ratio work_efficiency \\\n",
"0 5.459027e+08 6.065585e+06 1.16000 \n",
"1 3.393840e+07 5.302875e+05 1.20625 \n",
"2 4.738375e+08 2.060163e+06 1.22875 \n",
"3 1.058570e+08 2.301240e+06 1.22125 \n",
"4 5.761095e+08 3.512863e+06 1.13500 \n",
"\n",
" active_work_category work_stability_score position_score \\\n",
"0 Long-term 4.500000 4 \n",
"1 Mid-term 32.000000 1 \n",
"2 Long-term 9.200000 4 \n",
"3 Mid-term 7.666667 1 \n",
"4 Long-term 41.000000 4 \n",
"\n",
" job_income_position_score education_score education_income_ratio \\\n",
"0 3.032793e+06 1 1.213117e+07 \n",
"1 1.060575e+06 1 1.060575e+06 \n",
"2 2.575204e+06 3 3.433605e+06 \n",
"3 4.602479e+06 4 1.150620e+06 \n",
"4 3.512863e+06 1 1.405145e+07 \n",
"\n",
" weighted_satisfaction_performance \n",
"0 3.6 \n",
"1 1.6 \n",
"2 3.0 \n",
"3 2.4 \n",
"4 3.6 \n",
"\n",
"[5 rows x 32 columns]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"job_satisfaction_mapping = {1.0: 'Low', 2.0: 'Medium', 3.0: 'High', 4.0: 'Very High'}\n",
"df['job_satisfaction'] = df['job_satisfaction'].map(job_satisfaction_mapping)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" employee_id | \n",
" domisili | \n",
" jenis_kelamin | \n",
" date_of_birth | \n",
" join_date | \n",
" resign_date | \n",
" marriage_stat | \n",
" dependant | \n",
" education | \n",
" absent_90D | \n",
" ... | \n",
" total_income_work | \n",
" income_dependant_ratio | \n",
" work_efficiency | \n",
" active_work_category | \n",
" work_stability_score | \n",
" position_score | \n",
" job_income_position_score | \n",
" education_score | \n",
" education_income_ratio | \n",
" weighted_satisfaction_performance | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" EM10510 | \n",
" Kota Jakarta Utara | \n",
" Laki-laki | \n",
" 1983-09-11 | \n",
" 2021-02-09 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 9.0 | \n",
" ... | \n",
" 5.459027e+08 | \n",
" 6.065585e+06 | \n",
" 1.16000 | \n",
" Long-term | \n",
" 4.500000 | \n",
" 4 | \n",
" 3.032793e+06 | \n",
" 1 | \n",
" 1.213117e+07 | \n",
" 3.6 | \n",
"
\n",
" \n",
" 1 | \n",
" EM4322 | \n",
" Kabupaten Bekasi | \n",
" Perempuan | \n",
" 1987-03-22 | \n",
" 2022-02-28 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 3.393840e+07 | \n",
" 5.302875e+05 | \n",
" 1.20625 | \n",
" Mid-term | \n",
" 32.000000 | \n",
" 1 | \n",
" 1.060575e+06 | \n",
" 1 | \n",
" 1.060575e+06 | \n",
" 1.6 | \n",
"
\n",
" \n",
" 2 | \n",
" EM1637 | \n",
" Kota Jakarta Barat | \n",
" Laki-laki | \n",
" 1970-04-27 | \n",
" 2020-12-23 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 4 | \n",
" D2 | \n",
" 4.0 | \n",
" ... | \n",
" 4.738375e+08 | \n",
" 2.060163e+06 | \n",
" 1.22875 | \n",
" Long-term | \n",
" 9.200000 | \n",
" 4 | \n",
" 2.575204e+06 | \n",
" 3 | \n",
" 3.433605e+06 | \n",
" 3.0 | \n",
"
\n",
" \n",
" 3 | \n",
" EM14613 | \n",
" Kota Jakarta Pusat | \n",
" Laki-laki | \n",
" 1988-06-10 | \n",
" 2022-11-21 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 1 | \n",
" D3 | \n",
" 2.0 | \n",
" ... | \n",
" 1.058570e+08 | \n",
" 2.301240e+06 | \n",
" 1.22125 | \n",
" Mid-term | \n",
" 7.666667 | \n",
" 1 | \n",
" 4.602479e+06 | \n",
" 4 | \n",
" 1.150620e+06 | \n",
" 2.4 | \n",
"
\n",
" \n",
" 4 | \n",
" EM1084 | \n",
" Kabupaten Bogor | \n",
" Perempuan | \n",
" 1977-05-25 | \n",
" 2021-06-07 | \n",
" 2024-10-31 | \n",
" Married | \n",
" 3 | \n",
" SLTA | \n",
" 0.0 | \n",
" ... | \n",
" 5.761095e+08 | \n",
" 3.512863e+06 | \n",
" 1.13500 | \n",
" Long-term | \n",
" 41.000000 | \n",
" 4 | \n",
" 3.512863e+06 | \n",
" 1 | \n",
" 1.405145e+07 | \n",
" 3.6 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 32 columns
\n",
"
"
],
"text/plain": [
" employee_id domisili jenis_kelamin date_of_birth join_date \\\n",
"0 EM10510 Kota Jakarta Utara Laki-laki 1983-09-11 2021-02-09 \n",
"1 EM4322 Kabupaten Bekasi Perempuan 1987-03-22 2022-02-28 \n",
"2 EM1637 Kota Jakarta Barat Laki-laki 1970-04-27 2020-12-23 \n",
"3 EM14613 Kota Jakarta Pusat Laki-laki 1988-06-10 2022-11-21 \n",
"4 EM1084 Kabupaten Bogor Perempuan 1977-05-25 2021-06-07 \n",
"\n",
" resign_date marriage_stat dependant education absent_90D ... \\\n",
"0 2024-10-31 Married 1 SLTA 9.0 ... \n",
"1 2024-10-31 Married 1 SLTA 0.0 ... \n",
"2 2024-10-31 Married 4 D2 4.0 ... \n",
"3 2024-10-31 Married 1 D3 2.0 ... \n",
"4 2024-10-31 Married 3 SLTA 0.0 ... \n",
"\n",
" total_income_work income_dependant_ratio work_efficiency \\\n",
"0 5.459027e+08 6.065585e+06 1.16000 \n",
"1 3.393840e+07 5.302875e+05 1.20625 \n",
"2 4.738375e+08 2.060163e+06 1.22875 \n",
"3 1.058570e+08 2.301240e+06 1.22125 \n",
"4 5.761095e+08 3.512863e+06 1.13500 \n",
"\n",
" active_work_category work_stability_score position_score \\\n",
"0 Long-term 4.500000 4 \n",
"1 Mid-term 32.000000 1 \n",
"2 Long-term 9.200000 4 \n",
"3 Mid-term 7.666667 1 \n",
"4 Long-term 41.000000 4 \n",
"\n",
" job_income_position_score education_score education_income_ratio \\\n",
"0 3.032793e+06 1 1.213117e+07 \n",
"1 1.060575e+06 1 1.060575e+06 \n",
"2 2.575204e+06 3 3.433605e+06 \n",
"3 4.602479e+06 4 1.150620e+06 \n",
"4 3.512863e+06 1 1.405145e+07 \n",
"\n",
" weighted_satisfaction_performance \n",
"0 3.6 \n",
"1 1.6 \n",
"2 3.0 \n",
"3 2.4 \n",
"4 3.6 \n",
"\n",
"[5 rows x 32 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"performance_rating_mapping = {1.0: 'Low', 2.0: 'Good', 3.0: 'Excellent', 4.0: 'Outstanding'}\n",
"df['performance_rating'] = df['performance_rating'].map(performance_rating_mapping)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" join_date | \n",
" resign_date | \n",
" dependant | \n",
" absent_90D | \n",
" avg_time_work | \n",
" income | \n",
" total_komp | \n",
" churn_status | \n",
" active_work | \n",
" active_work_months | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 12623 | \n",
" 12623 | \n",
" 12623.000000 | \n",
" 12623.000000 | \n",
" 12623.000000 | \n",
" 1.262300e+04 | \n",
" 12623.0 | \n",
" 12623.000000 | \n",
" 12623.000000 | \n",
" 12623.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 2022-04-05 15:06:34.422878720 | \n",
" 2024-10-31 00:00:00.000000256 | \n",
" 1.444189 | \n",
" 3.985978 | \n",
" 9.446067 | \n",
" 6.857005e+06 | \n",
" 0.0 | \n",
" 0.266022 | \n",
" 939.370435 | \n",
" 30.838549 | \n",
"
\n",
" \n",
" min | \n",
" 2020-01-02 00:00:00 | \n",
" 2024-10-31 00:00:00 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 9.000000 | \n",
" 1.003626e+06 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 90.000000 | \n",
" 3.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 2021-03-15 12:00:00 | \n",
" 2024-10-31 00:00:00 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 9.220000 | \n",
" 3.538828e+06 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 552.500000 | \n",
" 18.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 2022-05-30 00:00:00 | \n",
" 2024-10-31 00:00:00 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 9.440000 | \n",
" 6.102568e+06 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 885.000000 | \n",
" 29.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 2023-04-27 12:00:00 | \n",
" 2024-10-31 00:00:00 | \n",
" 2.000000 | \n",
" 6.000000 | \n",
" 9.680000 | \n",
" 1.014884e+07 | \n",
" 0.0 | \n",
" 1.000000 | \n",
" 1325.500000 | \n",
" 44.000000 | \n",
"
\n",
" \n",
" max | \n",
" 2024-08-02 00:00:00 | \n",
" 2024-10-31 00:00:00 | \n",
" 5.000000 | \n",
" 13.000000 | \n",
" 9.900000 | \n",
" 1.997909e+07 | \n",
" 0.0 | \n",
" 1.000000 | \n",
" 1764.000000 | \n",
" 58.000000 | \n",
"
\n",
" \n",
" std | \n",
" NaN | \n",
" NaN | \n",
" 1.231114 | \n",
" 3.490900 | \n",
" 0.260364 | \n",
" 4.008731e+06 | \n",
" 0.0 | \n",
" 0.441894 | \n",
" 442.120568 | \n",
" 14.735031 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" join_date resign_date \\\n",
"count 12623 12623 \n",
"mean 2022-04-05 15:06:34.422878720 2024-10-31 00:00:00.000000256 \n",
"min 2020-01-02 00:00:00 2024-10-31 00:00:00 \n",
"25% 2021-03-15 12:00:00 2024-10-31 00:00:00 \n",
"50% 2022-05-30 00:00:00 2024-10-31 00:00:00 \n",
"75% 2023-04-27 12:00:00 2024-10-31 00:00:00 \n",
"max 2024-08-02 00:00:00 2024-10-31 00:00:00 \n",
"std NaN NaN \n",
"\n",
" dependant absent_90D avg_time_work income total_komp \\\n",
"count 12623.000000 12623.000000 12623.000000 1.262300e+04 12623.0 \n",
"mean 1.444189 3.985978 9.446067 6.857005e+06 0.0 \n",
"min 0.000000 0.000000 9.000000 1.003626e+06 0.0 \n",
"25% 0.000000 1.000000 9.220000 3.538828e+06 0.0 \n",
"50% 1.000000 3.000000 9.440000 6.102568e+06 0.0 \n",
"75% 2.000000 6.000000 9.680000 1.014884e+07 0.0 \n",
"max 5.000000 13.000000 9.900000 1.997909e+07 0.0 \n",
"std 1.231114 3.490900 0.260364 4.008731e+06 0.0 \n",
"\n",
" churn_status active_work active_work_months \n",
"count 12623.000000 12623.000000 12623.000000 \n",
"mean 0.266022 939.370435 30.838549 \n",
"min 0.000000 90.000000 3.000000 \n",
"25% 0.000000 552.500000 18.000000 \n",
"50% 0.000000 885.000000 29.000000 \n",
"75% 1.000000 1325.500000 44.000000 \n",
"max 1.000000 1764.000000 58.000000 \n",
"std 0.441894 442.120568 14.735031 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" income_3_months | \n",
" income_6_months | \n",
" total_income_work | \n",
" income_dependant_ratio | \n",
" work_efficiency | \n",
" work_stability_score | \n",
" position_score | \n",
" job_income_position_score | \n",
" education_score | \n",
" education_income_ratio | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 1.262300e+04 | \n",
" 1.262300e+04 | \n",
" 1.262300e+04 | \n",
" 1.262300e+04 | \n",
" 12623.000000 | \n",
" 12623.000000 | \n",
" 12623.000000 | \n",
" 1.262300e+04 | \n",
" 12623.000000 | \n",
" 1.262300e+04 | \n",
"
\n",
" \n",
" mean | \n",
" 2.057101e+07 | \n",
" 4.114203e+07 | \n",
" 2.114433e+08 | \n",
" 3.422275e+06 | \n",
" 1.180758 | \n",
" 11.269302 | \n",
" 2.259922 | \n",
" 3.044300e+06 | \n",
" 2.948586 | \n",
" 3.196302e+06 | \n",
"
\n",
" \n",
" min | \n",
" 3.010878e+06 | \n",
" 6.021756e+06 | \n",
" 3.622452e+06 | \n",
" 2.069960e+05 | \n",
" 1.125000 | \n",
" 0.214286 | \n",
" 1.000000 | \n",
" 1.003626e+06 | \n",
" 1.000000 | \n",
" 7.516455e+05 | \n",
"
\n",
" \n",
" 25% | \n",
" 1.061649e+07 | \n",
" 2.123297e+07 | \n",
" 7.817140e+07 | \n",
" 1.677444e+06 | \n",
" 1.152500 | \n",
" 3.555556 | \n",
" 1.000000 | \n",
" 2.408317e+06 | \n",
" 1.000000 | \n",
" 1.302578e+06 | \n",
"
\n",
" \n",
" 50% | \n",
" 1.830770e+07 | \n",
" 3.661541e+07 | \n",
" 1.601696e+08 | \n",
" 2.758631e+06 | \n",
" 1.180000 | \n",
" 6.750000 | \n",
" 2.000000 | \n",
" 3.001308e+06 | \n",
" 3.000000 | \n",
" 2.139607e+06 | \n",
"
\n",
" \n",
" 75% | \n",
" 3.044652e+07 | \n",
" 6.089304e+07 | \n",
" 2.958879e+08 | \n",
" 4.291924e+06 | \n",
" 1.210000 | \n",
" 14.000000 | \n",
" 3.000000 | \n",
" 3.702547e+06 | \n",
" 5.000000 | \n",
" 2.831084e+06 | \n",
"
\n",
" \n",
" max | \n",
" 5.993727e+07 | \n",
" 1.198745e+08 | \n",
" 9.957052e+08 | \n",
" 1.906798e+07 | \n",
" 1.237500 | \n",
" 58.000000 | \n",
" 4.000000 | \n",
" 5.970222e+06 | \n",
" 6.000000 | \n",
" 1.498861e+07 | \n",
"
\n",
" \n",
" std | \n",
" 1.202619e+07 | \n",
" 2.405238e+07 | \n",
" 1.720408e+08 | \n",
" 2.673627e+06 | \n",
" 0.032546 | \n",
" 11.855418 | \n",
" 1.200611 | \n",
" 9.639096e+05 | \n",
" 1.665348 | \n",
" 3.321544e+06 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" income_3_months income_6_months total_income_work \\\n",
"count 1.262300e+04 1.262300e+04 1.262300e+04 \n",
"mean 2.057101e+07 4.114203e+07 2.114433e+08 \n",
"min 3.010878e+06 6.021756e+06 3.622452e+06 \n",
"25% 1.061649e+07 2.123297e+07 7.817140e+07 \n",
"50% 1.830770e+07 3.661541e+07 1.601696e+08 \n",
"75% 3.044652e+07 6.089304e+07 2.958879e+08 \n",
"max 5.993727e+07 1.198745e+08 9.957052e+08 \n",
"std 1.202619e+07 2.405238e+07 1.720408e+08 \n",
"\n",
" income_dependant_ratio work_efficiency work_stability_score \\\n",
"count 1.262300e+04 12623.000000 12623.000000 \n",
"mean 3.422275e+06 1.180758 11.269302 \n",
"min 2.069960e+05 1.125000 0.214286 \n",
"25% 1.677444e+06 1.152500 3.555556 \n",
"50% 2.758631e+06 1.180000 6.750000 \n",
"75% 4.291924e+06 1.210000 14.000000 \n",
"max 1.906798e+07 1.237500 58.000000 \n",
"std 2.673627e+06 0.032546 11.855418 \n",
"\n",
" position_score job_income_position_score education_score \\\n",
"count 12623.000000 1.262300e+04 12623.000000 \n",
"mean 2.259922 3.044300e+06 2.948586 \n",
"min 1.000000 1.003626e+06 1.000000 \n",
"25% 1.000000 2.408317e+06 1.000000 \n",
"50% 2.000000 3.001308e+06 3.000000 \n",
"75% 3.000000 3.702547e+06 5.000000 \n",
"max 4.000000 5.970222e+06 6.000000 \n",
"std 1.200611 9.639096e+05 1.665348 \n",
"\n",
" education_income_ratio \n",
"count 1.262300e+04 \n",
"mean 3.196302e+06 \n",
"min 7.516455e+05 \n",
"25% 1.302578e+06 \n",
"50% 2.139607e+06 \n",
"75% 2.831084e+06 \n",
"max 1.498861e+07 \n",
"std 3.321544e+06 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" weighted_satisfaction_performance | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 12623.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 2.659431 | \n",
"
\n",
" \n",
" min | \n",
" 1.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 2.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 3.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 3.400000 | \n",
"
\n",
" \n",
" max | \n",
" 4.000000 | \n",
"
\n",
" \n",
" std | \n",
" 0.894740 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" weighted_satisfaction_performance\n",
"count 12623.000000\n",
"mean 2.659431\n",
"min 1.000000\n",
"25% 2.000000\n",
"50% 3.000000\n",
"75% 3.400000\n",
"max 4.000000\n",
"std 0.894740"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"desc = df.describe()\n",
"num_cols = 10\n",
"total_cols = len(desc.columns)\n",
"\n",
"desc_chunks = [desc.iloc[:, i:i+num_cols] for i in range(0, total_cols, num_cols)]\n",
"\n",
"for chunk in desc_chunks:\n",
" display(chunk)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}