import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
df = pd.read_csv('HRDataset.csv')
#Zadanie 2 Jakie źródła pozyskania pracownika (Recruitment Source) są najlepsze, jeśli zależy nam na jak najdłuższym stażu pracowników?
import datetime as dt
df['DOB'] = pd.to_datetime(df['DOB'],format='%m/%d/%y')
def days(date,chk_y=dt.datetime(2019,9,27).year):
return date.replace(year=date.year-100) if date.year > chk_y else date
df['DOB'] = pd.to_datetime(df['DOB'],format='%m/%d/%y').map(days)
df['DateofTermination'] = pd.to_datetime(df['DateofTermination'],format='%m/%d/%y')
df['DateofHire'] = pd.to_datetime(df['DateofHire'],format='%m/%d/%Y')
def seniority(row):
if pd.isnull(row['DateofTermination']):
end_date = dt.datetime(2019,9,27)
else:
end_date = row['DateofTermination']
return (end_date - row['DateofHire'])/np.timedelta64(1,'Y')
df['Seniority'] = df.apply(lambda row: seniority(row),axis=1)
Ogólnie rzecz biorąc to mam powyższy kod , ale nie dokońca rozumiem co nie które rzeczy w tym kodzie. Najpierw jest ładowany plik .csv
, potem są konwertowane daty df['DOB']
.
Natomiast jak jest ta funkcja def days(date,chk_y=dt.datetime(2019,9,27).year)
to nie kapuje co tu jest dokładnie zwracane? Poza tym trochę nie czaje skąd się bierze ta zmienna date
?
Nie rozumiem o co w tym chodzi ?
return date.replace(year=date.year-100) if date.year > chk_y else date
poza tym jak jest
df['DOB'] = pd.to_datetime(df['DOB'],format='%m/%d/%y').map(days)
to co to jest to map(days)
? wiem co jest days
bo to wygląda na tą powyższa funkcje days(....)
.
Jakoś nie do końca rozumiem ten kod , jakby ktoś był wstanie mi to wytłumaczyć to byłoby fajnie.