From 3699fce897a99ea98d182e31da82a8dc97cac0ad Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 11:22:49 +0000 Subject: [PATCH] Add generate_employee_data.py to create sample employee data and aggregation in Excel Co-authored-by: muumuu8181 <87556753+muumuu8181@users.noreply.github.com> --- .../generate_employee_data.cpython-312.pyc | Bin 0 -> 4662 bytes ...est_generate_employee_data.cpython-312.pyc | Bin 0 -> 3226 bytes employee_data.xlsx | Bin 0 -> 63263 bytes generate_employee_data.py | 126 ++++++++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 __pycache__/generate_employee_data.cpython-312.pyc create mode 100644 __pycache__/test_generate_employee_data.cpython-312.pyc create mode 100644 employee_data.xlsx create mode 100644 generate_employee_data.py diff --git a/__pycache__/generate_employee_data.cpython-312.pyc b/__pycache__/generate_employee_data.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db0b1004b2b80c37f30fc25d9ec0e8a85516f4ca GIT binary patch literal 4662 zcmai1U2Gf25#A&3j(7YOfAs%%R;(Yowj3vM92<5dC$jvnI9AX!iUannTTw@oN8xz1 zCH7dbO#;wB3QK*F+9s$T-P#X+^rMOvNPs?+EY*s=sEC0EZ3Of|j$F71P@uC%9!bkF zvJ&@ZcV}m3cXnpJ{iDa@L{NVHzn{y6CWQV$8dkAai5&%qWh5bqilZqCzP7k6VV|;7 zl|FikhCX|oNib7Pf}LV1WJB04(RZkdgeix_OUwt<6eqDCpebH*K<&gXiMuw0kjeqK z^Ggukkh1Gl3VhalvnaeO(x}+0#eYVLQ=ETVp6SAo77II zD3_(Q+IlgYx#kmuFf8xh}_|bVg_I?y=4w>(%YCR%@*O)j8dz zyLFH5)tyq`$E;-y3c>!LGxzUnIJ36;OpB8CO8vD}nzT-wNNtWVBr96@nDEvtCIeToDkNv>A_XleM5}5HJ53Rnv6fbq26o-bRzV>-_p^7= z7V&h0nH1w7YV`aCv_+E+{-UT}gK!31!f(gW7KsmrV_a55Wg5#r{P!f+Sul*^8wm5U zwTGxc$(8-l(Mj(SkKedlk&p~C-)P=RyB6s#lzRKvfpKoIebm&nCwX`i?S-Mi_ zd!f|)Vs2uaMgCy!Y}x0}o%zz=zOr|fT0K`c>;@v789#t zv1RbDo}oNd_6PFprmy){_GY%weW2tU&eP>U%i_Y)!Mx)Ui&{FCBTJD|^FZFY8ERXe zSeht>_U8F=uxoi_X`~d~TL|>8zPXy&7(7xOJW?7wS{OKXe}AFrbe;kJjZl9v)PJvI zZMG2VFNNO7^A9-x2G>^P+R80m<&M4O_P%m+2dP_o9(o)d&PT|>yS7_UQ)uyG(bt!! zH$xp{)zueo+e@MSd4AI$T6}BeY_Yk&%kuH1rNAt$(-Ke8bgTw!>bzPF;@qk3hHxJT z2Azg<<`iFsZZmOQ!Yc9flpsc zl^zYZmej;}HCd{siEP$j5?Fgxajye;J2pJM zMNjXl>mFC|^p-qFH#{Rn&&Zm$FnOim87X<*%Z)?Kg1DpHR94$Rt7XqJ%i7^i_i89KF=;b`!o2wPx8S#5B@BT;cV)=Z?eu4o}s?y&>@tf zZrCXF4x-@iqvm=0JLm=#_GkJ`54;GtQ^50hI&H?5nY02JCaF~7NhVOm(*&84tUEkB zy!92BDdRtB-pPjkOrYjFCg*%SHJ@=#iq{DbK;n!YCL3H5Ak5std>nj~#U{)&Tn#~J z+(dJ;7+l9hYfQy~_*%d*I4h1A!O2Q+h@7kk$B7IxmQ?T_;+AuOUo{gam`|o^4OcR)&84--j2s8(cEg;TBG=q>Qla9dG+;?Z z6`^+)eyLBP%ArRbVw?qM&pO?^`TU9dQtA2Ei}Zoq#Nvh3?|n)01!wm<-LvWMUQuqx z@1HOE&*aWM2n^)TZ_<4J+~SV_JG@wM4zANfU-GV7JvVz+T({5tg+FrtZpXchP)-=sXSm)~`s^uLbmzemjL zyu;uk5whJ#BuuH7VKnSE*vgxwa>|T}XI0|l>ON8t@T(I4RriyMfVYZK$bk`Y#M+U_ zZ;%;JDksVvPr!R1j$c)yz(g*1>LgU#c8a1tN5Q|N*3XgW3pDhQMVu%9_WM81(L3~O n6m|IPGq!dr`1Q*{D!9E5(e8Za&-V7e(cFjQ+jc~Em`nU0vF(DL literal 0 HcmV?d00001 diff --git a/__pycache__/test_generate_employee_data.cpython-312.pyc b/__pycache__/test_generate_employee_data.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ae1e740f3b686d0b006d83befd67f1fc308eecd GIT binary patch literal 3226 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
NQxP+UkeDS}SdeH3To)nL6bcqdWX{ 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 Rp+(?7i$P+Y7>54W{{xCFj06Ax literal 0 HcmV?d00001 diff --git a/generate_employee_data.py b/generate_employee_data.py new file mode 100644 index 0000000..7f69658 --- /dev/null +++ b/generate_employee_data.py @@ -0,0 +1,126 @@ +import pandas as pd +from faker import Faker +import random +from datetime import datetime, timedelta + +# Initialize Faker +fake = Faker('ja_JP') # Use Japanese locale for realism if desired, or standard. Given the user prompt was in Japanese, let's try 'ja_JP'. + +def generate_data(num_employees=1000): + """ + Generates sample data for departments, employees, and salaries. + + Args: + num_employees (int): The number of employees to generate. + + Returns: + tuple: A tuple containing three pandas DataFrames (departments, employees, salaries). + """ + # 1. Departments + departments_data = [ + {'dept_id': 1, 'dept_name': 'Human Resources', 'base_salary': 4000000}, + {'dept_id': 2, 'dept_name': 'Engineering', 'base_salary': 6000000}, + {'dept_id': 3, 'dept_name': 'Sales', 'base_salary': 5000000}, + {'dept_id': 4, 'dept_name': 'Marketing', 'base_salary': 4500000}, + {'dept_id': 5, 'dept_name': 'Finance', 'base_salary': 5500000}, + {'dept_id': 6, 'dept_name': 'Operations', 'base_salary': 4200000}, + {'dept_id': 7, 'dept_name': 'Legal', 'base_salary': 7000000}, + {'dept_id': 8, 'dept_name': 'Product', 'base_salary': 5800000}, + ] + df_departments = pd.DataFrame(departments_data) + + # 2. Employees + employees = [] + salaries = [] + + start_date = datetime(2015, 1, 1) + end_date = datetime(2023, 12, 31) + + for i in range(1, num_employees + 1): + emp_id = i + dept = random.choice(departments_data) + dept_id = dept['dept_id'] + + # Employee Data + first_name = fake.first_name() + last_name = fake.last_name() + email = f"{last_name.lower()}.{first_name.lower()}@example.com" # Simple email generation + hire_date = fake.date_between(start_date=start_date, end_date=end_date) + + employees.append({ + 'emp_id': emp_id, + 'first_name': first_name, + 'last_name': last_name, + 'email': email, + 'hire_date': hire_date, + 'dept_id': dept_id + }) + + # Salary Data (Simplified: current annual salary) + # Random variation around base salary + base = dept['base_salary'] + variation = random.uniform(0.8, 1.5) # -20% to +50% + amount = int(base * variation) + + salaries.append({ + 'salary_id': i, # Simple 1-to-1 mapping for this example + 'emp_id': emp_id, + 'amount': amount, + 'effective_date': datetime(2024, 1, 1).date() + }) + + df_employees = pd.DataFrame(employees) + df_salaries = pd.DataFrame(salaries) + + return df_departments, df_employees, df_salaries + +def analyze_data(df_departments, df_employees, df_salaries): + """ + Performs aggregation on the employee data. + + Args: + df_departments (pd.DataFrame): Departments data. + df_employees (pd.DataFrame): Employees data. + df_salaries (pd.DataFrame): Salaries data. + + Returns: + pd.DataFrame: A summary DataFrame with aggregation results. + """ + # Merge + merged = df_employees.merge(df_salaries, on='emp_id').merge(df_departments, on='dept_id') + + # Aggregation + summary = merged.groupby('dept_name').agg( + employee_count=('emp_id', 'count'), + average_salary=('amount', 'mean'), + total_salary=('amount', 'sum') + ).reset_index() + + # Format + summary['average_salary'] = summary['average_salary'].astype(int) + + return summary + +def main(): + """ + Main execution function. + """ + print("Generating data...") + df_departments, df_employees, df_salaries = generate_data(1000) + + print("Analyzing data...") + df_summary = analyze_data(df_departments, df_employees, df_salaries) + + output_file = 'employee_data.xlsx' + print(f"Saving to {output_file}...") + + with pd.ExcelWriter(output_file, engine='openpyxl') as writer: + df_departments.to_excel(writer, sheet_name='Departments', index=False) + df_employees.to_excel(writer, sheet_name='Employees', index=False) + df_salaries.to_excel(writer, sheet_name='Salaries', index=False) + df_summary.to_excel(writer, sheet_name='Summary_Aggregation', index=False) + + print("Done!") + +if __name__ == "__main__": + main()