시작하기무료로 시작하기

두 연도 간의 절대 차이

또 다른 변수를 추가해 보죠. 직전 연도(2017년)의 기부 횟수와 그 이전 연도(2016년)의 기부 횟수 간의 절대 차이를 추가하려고 합니다. 이 변수를 basetable에 추가할 수 있도록, 2016년과 2017년에 이루어진 기부 내역으로 구성된 두 개의 pandas 데이터프레임 gifts_2016gifts_2017가 준비되어 있어요.

pandas 데이터프레임 df에서 열 id의 각 값에 대한 발생 횟수를 groupby로 셀 수 있음을 기억하세요:

df_grouped = df.groupby("id")["value"].count().reset_index()

또한, 주어진 merge_id로 두 데이터프레임 df1df2를 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())
코드 편집 및 실행