๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/Python

[Python] ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ •๋ฆฌ

by ITyranno 2023. 12. 14.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

 

 

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

<  ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ํ–‰๋‹จ์œ„/์—ด๋‹จ์œ„ ํ•ฉ์น˜๊ธฐ  >

 

 

 

import pandas as pd

 

 

 

 

ํ–‰๋‹จ์œ„ ํ•ฉ์น˜๊ธฐ

 

### ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
# ์ž„์‹œ ๋ฐ์ดํ„ฐ
data = [["Dog", 3], ["Cat", 5], ["Tiger", 2]]
index = [0, 1, 2]
columns = ["๋™๋ฌผ", "๋‚˜์ด"]

df_temp1 = pd.DataFrame(data,
                        index=index,
                        columns=columns)
df_temp1

 

 

 

 

 

 

 

 

### ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
# ์ž„์‹œ ๋ฐ์ดํ„ฐ
data = [["์ง‘", 3], ["์ดˆ์›", 5], ["์ดˆ์›", 2]]
index = [0, 1, 2]
columns = ["์‚ฌ๋Š”๊ณณ", "๋ฟ”์˜๊ฐฏ์ˆ˜"]

df_temp2 = pd.DataFrame(data,
                        index=index,
                        columns=columns)
df_temp2

 

 

 

 

 

 

 

 

df_temp1๊ณผ df_temp2๋ฅผ ํ–‰๋‹จ์œ„๋กœ ํ•ฉ์น˜๊ธฐ(ํ–‰์œผ๋กœ ์ถ”๊ฐ€)

 

 

### df_temp1๊ณผ df_temp2๋ฅผ ํ–‰๋‹จ์œ„๋กœ ํ•ฉ์น˜๊ธฐ(ํ–‰์œผ๋กœ ์ถ”๊ฐ€)
pd.concat([df_temp1, df_temp2], axis=0, ignore_index=True)

 

 

 

 

 

 

 

 

 

<  ์—ด๋‹จ์œ„๋กœ ํ•ฉ์น˜๊ธฐ  >

 

### ์—ด๋‹จ์œ„๋กœ ํ•ฉ์น  ๋•Œ๋Š” ํ–‰์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค
pd.concat([df_temp1, df_temp2], axis=1)

 

 

 

 

 

 

 

 

<  ์—ด๋‹จ์œ„ ํ•ฉ์น˜๊ธฐ : ํ‚ค๊ฐ’์„ ์ด์šฉํ•ด์„œ ํ•ฉ์น˜๋Š” ๋ฐฉ์‹  >

 

 

### ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
# ์ž„์‹œ ๋ฐ์ดํ„ฐ
data1 = {"๊ตญ์ ์ฝ”๋“œ" : [1001, 1002, 1003],
        "๊ตญ๊ฐ€" : ["ํ•œ๊ตญ", "๋ฏธ๊ตญ", "์ธ๋„"]}
df_info1 = pd.DataFrame(data1)

data2 = {"๊ตญ์ ์ฝ”๋“œ" : [1001, 1001, 1005],
         "์ธ๊ตฌ" : [100, 200, 300]}
df_info2 = pd.DataFrame(data2)

df_info1
df_info2

 

 

 

 

 

 

 

 

 

๊ตญ์ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ๊ฐ’๋“ค์— ๋Œ€ํ•ด์„œ ํ•ฉ์น˜๊ธฐ

 

### ๊ตญ์ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ๊ฐ’๋“ค์— ๋Œ€ํ•ด์„œ ํ•ฉ์น˜๊ธฐ
# - ๊ธฐ์ค€์€ df_info1
pd.merge(left=df_info1,
         right=df_info2,
         how="inner",
         left_on="๊ตญ์ ์ฝ”๋“œ",
         right_on="๊ตญ์ ์ฝ”๋“œ")

 

 

 

 

 

 

 

 

๊ตญ์ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ๊ฐ’์€ ๊ฐ™์€๋Œ€๋กœ, ๊ฐ™์ง€ ์•Š์œผ๋ฉด NaN์œผ๋กœ ํ•ฉ์น˜๊ธฐ

 

 

### ๊ตญ์ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ๊ฐ’์€ ๊ฐ™์€๋Œ€๋กœ, ๊ฐ™์ง€ ์•Š์œผ๋ฉด NaN์œผ๋กœ ํ•ฉ์น˜๊ธฐ
# - ๊ธฐ์ค€์€ df_info1
pd.merge(left=df_info1,
         right=df_info2,
         how="left",
         left_on="๊ตญ์ ์ฝ”๋“œ",
         right_on="๊ตญ์ ์ฝ”๋“œ")

 

 

 

 

 

 

 

<  ์ „์ฒ˜๋ฆฌ  >

 

 

๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌ

 

 

### bicycle.csv ํŒŒ์ผ ์ฝ์–ด๋“ค์ด๊ธฐ
df = pd.read_csv("./data/bicycle.csv", encoding="euc-kr")
df

 

 

 

 

 

 

๊ฒฐ์ธก๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ

 

### ๊ฒฐ์ธก๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ
df.info()

 

 

 

 

 

 

### ๊ฒฐ์ธก์น˜ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ
# - ๊ฒฐ์ธก ๋ฐ์ดํ„ฐ ๊ฐ’์€ True, ์ •์ƒ ๋ฐ์ดํ„ฐ๋Š” False
df.isnull()

 

 

 

 

 

 

 

### ๊ฒฐ์ธก์น˜๊ฐ€ ์•„๋‹Œ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ
df.notnull()

 

 

 

 

 

 

 

 

<  ๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•  >


 1. ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ• ์ง€/๋ง์ง€ ๊ฒฐ์ •


 2. ์‚ฌ์šฉ ์•ˆ ํ•œ๋‹ค๋ฉด -> ์ปฌ๋Ÿผ๊ณผ ํ–‰ ์ค‘์— ์–ด๋Š ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ• ์ง€ ๊ฒฐ์ •


 3. ์‚ฌ์šฉํ•œ๋‹ค๋ฉด -> ์–ด๋–ป๊ฒŒ ๋Œ€์ฒดํ•  ์ง€ ๊ฒฐ์ •


   (๋Œ€์ฒด ๋ฐฉ๋ฒ•)
    3.1. ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ํ‰๊ท ์œผ๋กœ ๋ชจ๋‘ ๋Œ€์ฒด
    3.2. ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ์ธ ๊ฒฝ์šฐ์—๋Š” ๋ฒ”์ฃผ์˜ ๋น„์œจ๋Œ€๋น„๋กœ ๋Œ€์ฒด
    3.3. ์ˆซ์ž๊ฐ’์ธ ๊ฒฝ์šฐ ๋ชจ๋‘ 0์œผ๋กœ ๋Œ€์ฒด
    3.4. ๊ฒฐ์ธก๋ฐ์ดํ„ฐ๊ฐ€ ์†ํ•œ ์ฃผ๋ณ€ ์ปฌ๋Ÿผ๋“ค์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ๋“ค์˜ ํ‰๊ท ์œผ๋กœ ๋Œ€์ฒด
    3.5. ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ์ปฌ๋Ÿผ์˜ ์ง์ „/์งํ›„ ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ์œผ๋กœ ๋Œ€์ฒด 


 

 

<  ๊ฒฐ์ธก๋ฐ์ดํ„ฐ ํ˜„ํ™ฉ ํ™•์ธ  >

 

 

์ปฌ๋Ÿผ๋ณ„ ๊ฒฐ์ธก ํ˜„ํ™ฉ

 

 

### ๊ฒฐ์ธก๋ฐ์ดํ„ฐ ํ˜„ํ™ฉ ํ™•์ธ
# ์ปฌ๋Ÿผ๋ณ„ ๊ฒฐ์ธก ํ˜„ํ™ฉ
#   - sum(0) : 0์˜ ์˜๋ฏธ๋Š” ๊ฐ ์—ด์˜ ํ–‰๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•จ
df.isnull().sum(0)

 

 

 

 

 

 

 

ํ–‰๋ณ„ ๊ฒฐ์ธก ํ˜„ํ™ฉ

 

# ํ–‰๋ณ„ ๊ฒฐ์ธก ํ˜„ํ™ฉ
#   - sum(0) : 0์˜ ์˜๋ฏธ๋Š” ๊ฐ ํ–‰์˜ ์ปฌ๋Ÿผ ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•จ
df.isnull().sum(1)

 

 

 

 

 

 

 

<  ๊ฒฐ์ธก๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ  >

 

 

๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ํ–‰๋“ค ์‚ญ์ œํ•˜๊ธฐ

 

### ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ํ–‰๋“ค ์‚ญ์žฌํ•˜๊ธฐ
df_drop = df.dropna(axis=0)
df_drop.info()

 

 

 

 

 

 

๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์ปฌ๋Ÿผ ์‚ญ์ œํ•˜๊ธฐ

 

### ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์ปฌ๋Ÿผ ์‚ญ์ œํ•˜๊ธฐ
df_drop_col = df.dropna(axis=1)
df_drop_col.info()

 

 

 

 

 

 

 

df["์ด์šฉ๊ฑฐ๋ฆฌ"].fillna(0)
df["์ด์šฉ๊ฑฐ๋ฆฌ"].fillna("missing")
df["์ด์šฉ๊ฑฐ๋ฆฌ"].fillna(df["์ด์šฉ๊ฑฐ๋ฆฌ"].mean())

 

 

 

 

 

 

 

 

<  ์ค‘๋ณต๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ  >

 

 

 - keep : first, last, False

 

keep : ์ค‘๋ณต ์ค‘์— ๋ช‡ ๋ฒˆ์งธ ์ค‘๋ณต์„ False(๋‚จ๊ฒจ ๋‘˜ ๊ฒƒ์ธ์ง€)๋กœ ํ•  ๊ฒƒ์ธ์ง€
์ค‘๋ณต ์ค‘์— ์ฒซ๋ฒˆ์งธ๋Š” False, ๋‚˜๋จธ์ง€ ๋’ค์— ์ค‘๋ณต๋“ค์€ ๋ชจ๋‘ True๋กœ


first : ์ฒซ๋ฒˆ์งธ์ธ False(enlWhr ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ True)  -> ๊ธฐ๋ณธ๊ฐ’, ์ƒ๋žต ๊ฐ€๋Šฅ
last : ๋งˆ์ง€๋ง‰๋งŒ False(์•ž์ชฝ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ True)
False : ์ค‘๋ณต๋ฐ์ดํ„ฐ ์ „์ฒด True

 

 

 

df["์ด์šฉ๊ฑฐ๋ฆฌ"]

### ์ค‘๋ณต๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ํ–‰์˜ ์œ„์น˜ ํ™•์ธํ•˜๊ธฐ
df[df.duplicated(["์ด์šฉ๊ฑฐ๋ฆฌ"])]

### keep : ์ค‘๋ณต ์ค‘์— ๋ช‡ ๋ฒˆ์งธ ์ค‘๋ณต์„ False(๋‚จ๊ฒจ ๋‘˜ ๊ฒƒ์ธ์ง€)๋กœ ํ•  ๊ฒƒ์ธ์ง€
### ์ค‘๋ณต ์ค‘์— ์ฒซ๋ฒˆ์งธ๋Š” False, ๋‚˜๋จธ์ง€ ๋’ค์— ์ค‘๋ณต๋“ค์€ ๋ชจ๋‘ True๋กœ
# - keep : first, last, False
# first : ์ฒซ๋ฒˆ์งธ์ธ False(enlWhr ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ True) -> ๊ธฐ๋ณธ๊ฐ’, ์ƒ๋žต ๊ฐ€๋Šฅ
# last : ๋งˆ์ง€๋ง‰๋งŒ False(์•ž์ชฝ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ True)
# False : ์ค‘๋ณต๋ฐ์ดํ„ฐ ์ „์ฒด True

df.duplicated(["์ด์šฉ๊ฑฐ๋ฆฌ"], keep="first")
df.duplicated(["์ด์šฉ๊ฑฐ๋ฆฌ"], keep="last")
df.duplicated(["์ด์šฉ๊ฑฐ๋ฆฌ"], keep="False")

 

 

 

 

 

 

df.duplicated(["์ด์šฉ๊ฑฐ๋ฆฌ"], keep="first").value_counts()

 

 

 

 

 

 

### ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ์šฉํ• ์ง€ ๋ง์ง€๋งŒ ๊ฒฐ์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
df.drop_duplicates(["์ด์šฉ๊ฑฐ๋ฆฌ"])

 

 

 

 

 

 

<  ์ด์ƒ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ  >

 

 

<์ด์ƒ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ˆœ์„œ>


 1. ๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌ๊ฐ€ ์„ ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
   - ๊ฒฐ์ธก์น˜๋„ ๋ฐ์ดํ„ฐ๋กœ ์ธ์‹๋˜๊ธฐ ๋•Œ๋ฌธ์—


 2. ์ด์ƒ๋ฐ์ดํ„ฐ์—๋Š” ๋ฒ”์ฃผํ˜•, ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋‹ค๋ฆ„
   - ์ผ๋ฐ˜์ ์œผ๋กœ ์ด์ƒ๋ฐ์ดํ„ฐ๋Š” ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ฃผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.


 3. ์ด์ƒ ๋ฐ์ดํ„ฐ ํ™•์ธ์€ ์‹œ๊ฐํ™”(boxplot)๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.


 4. ์‹ค์ œ ์ฒ˜๋ฆฌ๋Š” ๊ณ„์‚ฐ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ด๊ธฐ

 

### ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ด๊ธฐ
df = pd.read_csv("./data/bicycle_out.csv", encoding="euc-kr")
df.info()

 

 

 

 

 

 

 

 

๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ

 

### ๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ
df["๋Œ€์—ฌ๊ฑฐ์น˜๋Œ€"] = df["๋Œ€์—ฌ๊ฑฐ์น˜๋Œ€"].fillna(int(df["๋Œ€์—ฌ๊ฑฐ์น˜๋Œ€"].mean()))
df["๋ฐ˜๋‚ฉ๊ฑฐ์น˜๋Œ€"] = df["๋ฐ˜๋‚ฉ๊ฑฐ์น˜๋Œ€"].fillna(int(df["๋ฐ˜๋‚ฉ๊ฑฐ์น˜๋Œ€"].mean()))
df["์ด์šฉ์‹œ๊ฐ„"] = df["์ด์šฉ์‹œ๊ฐ„"].fillna(int(df["์ด์šฉ์‹œ๊ฐ„"].mean()))
df["์ด์šฉ๊ฑฐ๋ฆฌ"] = df["์ด์šฉ๊ฑฐ๋ฆฌ"].fillna(int(df["์ด์šฉ๊ฑฐ๋ฆฌ"].mean()))
df.info()

 

 

 

 

 

 

 

ํ–‰๋‹จ์œ„ ์ค‘๋ณต์ฒดํฌ

 

### ํ–‰๋‹จ์œ„ ์ค‘๋ณต์ฒดํฌ
df.duplicated().value_counts()

 

 

 

 

 

 

์ด์ƒ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ

 

### ์ด์ƒ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ
df.describe()

 

 

 

 

 

 

๋‚˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด์ƒ๋ฐ์ดํ„ฐ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ

 

 

 

 - ๋ฐ•์Šค ์œ„์ชฝ ์„  : Max Outliers
 - ๋ฐ•์Šค ์œ„์ชฝ ์„  : Min Ounliers
 - ์ด์ƒ์น˜๋กœ ์˜์‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ : Max ๋ฐ Min Ounliers๋ฅผ ๋ฒ—์–ด๋‚œ ๋ฐ์ดํ„ฐ๋“ค

 

 

### ๋‚˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด์ƒ๋ฐ์ดํ„ฐ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ
# - ๋ฐ•์Šคํ”Œ๋กฏ(boxplot)์„ ์ด์šฉํ•ด์„œ ์‹œ๊ฐํ™” ํ•ฉ๋‹ˆ๋‹ค.
plt.boxplot(df["๋‚˜์ด"])
plt.show()

"""
 - ๋ฐ•์Šค ์œ„์ชฝ ์„  : Max Outliers
 - ๋ฐ•์Šค ์œ„์ชฝ ์„  : Min Ounliers
 - ์ด์ƒ์น˜๋กœ ์˜์‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ : Max ๋ฐ Min Ounliers๋ฅผ ๋ฒ—์–ด๋‚œ ๋ฐ์ดํ„ฐ๋“ค
"""

 

 

 

 

 

 

 

์ด์ƒ์น˜ ๊ณ„์‚ฐ๊ณต์‹

 

 

# ์ตœ๋Œ€ = q3 + (1.5 * IQR)
# ์ตœ์†Œ = q1 - (1.5 * IQR)

 

 

 

25% ๋ฐ 75% ์‹œ์ ์˜ ๊ฐ’ ์ถ”์ถœํ•˜๊ธฐ

 

### 25% ๋ฐ 75% ์‹œ์ ์˜ ๊ฐ’ ์ถ”์ถœํ•˜๊ธฐ
q1, q3 = np.percentile(df["๋‚˜์ด"], [25, 75])
q1, q3

 

 

 

 

 

 

 

IQR ๊ณ„์‚ฐ

 

### IQR ๊ณ„์‚ฐ
iqr = q3 - q1
iqr

 

 

 

 

 

### max outliners ๊ณ„์‚ฐ
upper_bound = q3 + (1.5 * iqr)

### min outliners ๊ณ„์‚ฐ
lower_bound = q1 - (1.5 * iqr)

upper_bound, lower_bound

 

 

 

 

 

 

 

์ด์ƒ์น˜๋กœ ์˜์‹ฌ๋˜๋Š” max ๋˜๋Š” min์„ ๋ฒ—์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ ์ถ”์ถœํ•˜๊ธฐ

 

### ์ด์ƒ์น˜๋กœ ์˜์‹ฌ๋˜๋Š” max ๋˜๋Š” min์„ ๋ฒ—์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ ์ถ”์ถœํ•˜๊ธฐ
df[((df["๋‚˜์ด"] > upper_bound) | (df["๋‚˜์ด"] < lower_bound))]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

'IT > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฏธ๋ž˜ 1์ธ๋‹น ์ „๋ ฅ์†Œ๋น„๋Ÿ‰ ์˜ˆ์ธก, ์ „๊ธฐ์„ธ ์˜ˆ์ธก, ํ•จ์ˆ˜ ์ƒ์„ฑ, ํšŒ๊ท€๋ถ„์„ ๊ทธ๋ž˜ํ”„, ์ „๊ธฐ ๋‹จ๊ฐ€ ๊ณ„์‚ฐ๊ธฐ  (0) 2023.12.17
[Python] ํŒŒ์ด ์ฐจํŠธ ๊ทธ๋ฆฌ๊ธฐ (2022 ์—๋„ˆ์ง€์›๋ณ„ ๋น„์œจ, ์ปฌ๋Ÿผ ๋„์šฐ๊ธฐ, ๊ฐ„๊ฒฉ ๋งŒ๋“ค๊ธฐ, ์ƒ‰ ์ง€์ •ํ•˜๊ธฐ)  (0) 2023.12.15
[Python] 4. Daum ๋‹ค์Œ ์˜ํ™” ์‚ฌ์ดํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์›นํฌ๋กค๋ง (๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋ฐ ์‹œ๊ฐํ™” ์›Œ๋“œํด๋ผ์šฐ๋“œ ์‹œ๊ฐํ™”)  (3) 2023.12.13
[Python] 3. Daum ๋‹ค์Œ ์˜ํ™” ์‚ฌ์ดํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์›นํฌ๋กค๋ง (๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋ฐ ์‹œ๊ฐํ™” ์›ํ˜• ๊ทธ๋ž˜ํ”„)  (0) 2023.12.12
[Python] 2. Daum ๋‹ค์Œ ์˜ํ™” ์‚ฌ์ดํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์›นํฌ๋กค๋ง (๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋ฐ ์‹œ๊ฐํ™” ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„, ์ (๋ถ„ํฌ) ๊ทธ๋ž˜ํ”„)  (1) 2023.12.11

loading