<aside> 📌 Task : 1
</aside>
df1['new_exit_position_numeric'] = pd.cut(
df1['exit_position_numeric'],
bins=[0,5,35,90,100],
labels=['극초반', '초반','중후반', '완독']
)
<aside> 📌 Task : 2
</aside>
# birthday 컬럼 중 NaN 값 제거
df3 = df3.dropna(subset=["birthday"])
<aside> 📌 실행 및 진행 사항 정리
</aside>
<aside> 📌 1. df1[df1.new_exit_position_numeric.isna( )] — exit_position_numeric == 0 일때 null 값 발생 —
</aside>
| Index | user_id | exit_position_numeric | new_exit_position_numeric | genre |
|---|---|---|---|---|
| 80 | user_0081 | 0 | NaN | 웹툰 |
| 258 | user_0259 | 0 | NaN | 자기계발 |
| 275 | user_0276 | 0 | NaN | 경제/시사 |
| 358 | user_0359 | 0 | NaN | 자기계발 |
| 382 | user_0383 | 0 | NaN | 웹툰 |
| 389 | user_0390 | 0 | NaN | 자기계발 |
| 406 | user_0407 | 0 | NaN | 웹툰 |
| 501 | user_0502 | 0 | NaN | 웹툰 |
| 523 | user_0524 | 0 | NaN | 자기계발 |
| 591 | user_0592 | 0 | NaN | 소설 |
| 592 | user_0593 | 0 | NaN | 소설 |
| 599 | user_0600 | 0 | NaN | 웹툰 |
| 632 | user_0633 | 0 | NaN | 경제/시사 |
| 893 | user_0894 | 0 | NaN | 자기계발 |
<aside> 📌 df3[df3.new_age.isna()] — 10개의 NaN값 발생 —
</aside>
| Index | user_id | gender | birthday | birth_year | age | new_age | subscription_plan |
|---|---|---|---|---|---|---|---|
| 62 | user_0063 | male | NaN | NaN | NaN | NaN | pay_per_book |
| 363 | user_0364 | female | NaN | NaN | NaN | NaN | monthly |
| 433 | user_0434 | male | NaN | NaN | NaN | NaN | free_trial |
| 575 | user_0576 | male | NaN | NaN | NaN | NaN | pay_per_book |
| 737 | user_0738 | female | NaN | NaN | NaN | NaN | monthly |
| 754 | user_0755 | male | NaN | NaN | NaN | NaN | free_trial |
| 757 | user_0758 | male | NaN | NaN | NaN | NaN | free_trial |
| 835 | user_0836 | male | NaN | NaN | NaN | NaN | pay_per_book |
| 941 | user_0942 | female | NaN | NaN | NaN | NaN | pay_per_book |
| 942 | user_0943 | female | NaN | NaN | NaN | NaN | monthly |