두 연도 간의 절대 차이
또 다른 변수를 추가해 보죠. 직전 연도(2017년)의 기부 횟수와 그 이전 연도(2016년)의 기부 횟수 간의 절대 차이를 추가하려고 합니다.
이 변수를 basetable에 추가할 수 있도록, 2016년과 2017년에 이루어진 기부 내역으로 구성된 두 개의 pandas 데이터프레임 gifts_2016과 gifts_2017가 준비되어 있어요.
pandas 데이터프레임 df에서 열 id의 각 값에 대한 발생 횟수를 groupby로 셀 수 있음을 기억하세요:
df_grouped = df.groupby("id")["value"].count().reset_index()
또한, 주어진 merge_id로 두 데이터프레임 df1과 df2를 LEFT JOIN 하는 방법은 다음과 같아요:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
이 연습은 강의의 일부입니다
Python 중급 예측 분석
연습 안내
gifts_2016에서 기부자별로 2016년에 한 기부 횟수를 계산하세요.gifts_2017에서 기부자별로 2017년에 한 기부 횟수를 계산하세요.- 2016년과 2017년의 기부 횟수를 basetable에 추가하세요.
- basetable에서 2017년 기부 횟수에서 2016년 기부 횟수를 뺀 차이를 계산하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Number of gifts in 2016 and 2017 for each donor
gifts_2016_bydonor = gifts_2016.____("____").____().reset_index()
gifts_2016_bydonor.columns = ["donor_ID", "donations_2016"]
gifts_2017_bydonor = gifts_2017.____("____").____().reset_index()
gifts_2017_bydonor.columns = ["donor_ID", "donations_2017"]
# Add number of gifts in 2016 and 2017 to the basetable
basetable = pd.merge(____, ____, on="donor_ID", how="____")
basetable = pd.merge(____, ____, on="donor_ID", how="____")
# Calculate the number of gifts in 2017 minus number of gifts in 2016
basetable.fillna(0)
basetable["gifts_2017_min_2016"] = ____["____"] - ____["____"]
print(basetable.head())