π§ μ λͺ¨λ₯΄λ λΆμΌμ λ°μ΄ν°λ₯Ό μ²μ λ°μλ€μλ€λ©΄?
π λ°μ΄ν°μ μΌλ§λ μ΅μνμ§μ 무κ΄νκ² μΌμ ν 루ν΄μ λ°λΌ λ°μ΄ν°λ₯Ό μ΄ν΄νλ κ²μ΄ μ€μνλ€
- λ°μ΄ν°μ νμ΄ μ΄λ»κ² κ³ μ νκ² μλ³λλκ°? (λΆμλ¨μκ° λ¬΄μμΈκ°?)
- λ°μ΄ν°μ μ νκ³Ό μ΄μ λͺ κ°μΈκ°
- μ£Όμ λ²μ£Όν λ³μ(categorical variable)λ 무μμ΄κ³ κ°μ λΉλλ μ΄λ νκ°?
- μ€μν μ°μλ³μ(continuous variable)κ° μ΄λ»κ² λΆν¬νλκ°?
- λ³μλ€μ μλ‘ μ΄λ»κ² μ°κ΄λλκ°?
- μ΄μμΉμ λλ½κ°μ μ΄λ»κ² λΆν¬νλκ°?
λ°μ΄ν° λΆλ¬μ€κ³ νμΈνκΈ°
# μΈλ±μ€ μ€μ (νμ κ³ μ κ°)
df.set_index('personid', inplace = True)
df.head()
# νκ³Ό μ΄ ν¬κΈ° νμΈ
df.shape
# μΈλ±μ€ κ³ μ κ° κ°μ νμΈ
df.index.nunique()
# nullκ° νμΈ
df.info()
μ΄ μ ν, μ λνκΈ°
- λ°μ΄ν°λ₯Ό μ μ νκ±°λ νμμ νΉμ ν΅κ³μ λΆμμ ν λλ λΉλ©΄ν μ΄μλ λΆμμ κ΄λ ¨λ λ³μμ μ§μ€νλ κ²μ΄ μ’λ€
- μ΄μ μ€μ²΄μ νΉμ ν΅κ³μ κ΄κ³μ λ°λΌ κ·Έλ£Ήννκ±°λ ν λ²μ ν μ΄μ© μ νν΄ μ‘°μ¬νλ κ²μ΄ μ€μνλ€
- μ§κ΄μ μ»μΌλ €λ©΄ ν λ²μ λ€λ£¨λ λ°μ΄ν° μμ΄ μΈμλ²μλ₯Ό λμ§ μμμΌ ν¨!
[objectλ₯Ό categoryλ‘ λ°κΎΈκΈ°]
# κ°μ²΄(object) μλ£νμ μ ν -> category μλ£νμΌλ‘ λ°κΎΈκΈ°
nls97.loc[:, nls97.dtypes == 'object'] = nls97.select_dtypes(['object']).apply(lambda x: x.astype('category'))
[컬λΌλͺ νν°λ§νμ¬ λ³΅μ μ΄ μ ννκΈ°]
# 컬λΌλͺ
νν°λ§
analysiswork = df.filter(like="weeksworked")
βΆοΈ (μ°Έκ³ ) filter μ°μ°μλ μ κ·μμ μ·¨ν μλ μμ :
# μμ : μ΄λ¦μ incomeμ΄ ν¬ν¨λ μ΄μ λ°ν
df.filter(regex = 'income')
[μλ£νμ κΈ°μ€μΌλ‘ μ΄ μ ννκΈ°]
# λ²μ£Όν/μ«μνμΈ μ΄ λͺ¨λ μ ν =>> μλ£νμ κΈ°μ€μΌλ‘ μ΄ μ ννλ €λ©΄ select_dtypes()
analysiscats = nls97.select_dtypes(include = ['category'])
analysisnums = nls97.select_dtypes(include = ['number'])
[쑰건μ κΈ°μ€μΌλ‘ νκ³Ό μ΄ μ ννκΈ°]
df.loc[(df.nightlyhrssleep <= 4) & (df.childathome >= 3), ['nightlyhrssleep', 'childathome']]
λ²μ£Όν λ³μ λΉλ μμ±νκΈ°
- λ Όλ¦¬μ μΌλ‘ λ²μ£Όνμ΄μ§λ§ κ°μ²΄ μλ£νμΌλ‘ λ λ°μ΄ν°λ₯Ό λ€λ£° λμλ λ²μ£ΌνμΌλ‘ λ³ννλ κ²μ΄ νλΉν¨
- value_counts() λ©μλλ₯Ό νμ©νλ λ€μν μλ μλμ κ°λ€.
- λΉλμ λΉμ¨ νμ, 쑰건μ μ€ μ΄μμ λΉμ¨ νμ λ±
df.loc[:, df.dtypes == 'object'] = df.select_dtypes(['object']).apply(lambda x : x.astype('category'))
# λΉλμ μ λ ¬ ν΄μ
df.maritalstatus.value_counts(sort = False)
# λΉλλ₯Ό λΉμ¨λ‘
df.maritalstatus.value_counts(sort = False, normalize = True)
# μ λΆ μ±
μ κ΄λ ¨ μ΄ μ 체λ₯Ό λΉμ¨λ‘ νμ
df.filter(like='gov').apply(pd.value_counts, normalize = True)
# μ λΆ μ±
μ κ΄λ ¨ μ΄μμ κΈ°νΌμλ§ μ°ΎκΈ°
df[df.maritalstatus == 'Married'].filter(like='gov').apply(pd.value_counts, normalize = True)
μ°μν λ³μμ μμ½ν΅κ³ μ΄ν΄λ³΄κΈ°
- μ€μ¬κ²½ν₯(central tendency), νΌμ§ μ λ(spread), μλ(skewness)λ₯Ό μ΄ν΄λ³΄κ³
- μ΄μκ°κ³Ό μμμΉ λͺ»ν κ°(unexpected value)μ μλ³νλλ°λ νμ©νλ€.
[describe() νμΈ π νκ· κ³Ό μ€μκ°μ μ°¨μ΄κ° λ§€μ° ν¬λ©΄ μν μ νΈ]
covidtotals.describe()
[λ°±λΆμμ νμΈ]
- μλ μμμμλ νμ§μ μμ μ¬λ§μ μμ 90λ²μ§Έ λ°±λΆμμμ 100λ²μ§Έ λ°±λΆμμ μ°¨μ΄κ° μλΉμ΄ νΌ
- λ°μ΄ν°κ° μ κ·λΆν¬λ₯Ό λ°λ₯΄μ§ μμμ λνλ΄λ μ’μ μ§ν π μΆν μ§νν ν΅κ³μ κ²μ μ μ€μνλ―λ‘ μ μ!
- μ΄ μ¬λ§μ μ κ°μ΄λ° 10%κ° λλ κ°μ΄ 0μ΄λΌλ μ λ ν΅κ³μ κ²μ μ μ€μνλ―λ‘ μ μ
totvars = ['location', 'total_cases', 'total_deaths', 'total_cases_pm',
'total_deaths_pm']
covidtotals[totvars].quantile(np.arange(0.0, 1.1, 0.1))
λ³Έ ν¬μ€ν μ νμ΄μ¬ λ°μ΄ν° ν΄λ¦¬λ μΏ‘λΆμ νμ΅νλ©° μ 리ν μλ£μ λλ€.
728x90
'Python > κΈ°μ΄ λ¬Έλ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
__init__ λ©μλλ? (0) | 2023.08.03 |
---|---|
try-except ꡬ문 (0) | 2023.08.01 |
[νμ΄μ¬] νμν λΌμ΄λΈλ¬λ¦¬ κ΄λ¦¬/ν λ²μ μ€μΉνκΈ° (0) | 2023.07.27 |
Python μ€νμΌ κ°μ΄λ (0) | 2023.07.21 |
[μ€ν°λ] κ°λ°μλ₯Ό μν μ 보κ²μ ν(곡μ ) (0) | 2023.03.07 |