
iterrows()์ apply() ์ ๋๋ก ์ฐ๊ธฐIntermediate Python ๊ฐ์์ 4์ฅ์ ๋ณต์ตํ๋ฉด์ Pandas์ ๊ฐ๋ ฅํ ๋ฐ๋ณต ๋ฐ ๋ฐ์ดํฐ ์กฐ์ ๊ธฐ๋ฅ์ ์ตํ์ต๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ ์ค์ตํ๋ ๊ฐ๋ ๋ค์ ์ฝ๋ ์์์ ํจ๊ป ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
iterrows()๋ก DataFrame ๋ฐ๋ณตํ๊ธฐiterrows()๋ ๊ฐ ํ์ ํ๋์ฉ ์ํํ๋ฉฐ, ์ธ๋ฑ์ค(๋ ์ด๋ธ)์ ํ ๋ฐ์ดํฐ๋ฅผ Series ํํ๋ก ๋ฐํํฉ๋๋ค.
import pandas as pd
# ์์ DataFrame
cars = pd.DataFrame({
"country": ["United States", "Australia", "Japan", "India", "Russia"],
"drives_right": [True, False, False, False, True]
})
# ๋ฐ๋ณตํ๋ฉด์ ๊ฐ ํ์ ์ ๋ณด ์ถ๋ ฅ
for label, row in cars.iterrows():
print(f"Index: {label}")
print(f"Country: {row['country']}, Drives Right: {row['drives_right']}")
Index: 0
Country: United States, Drives Right: True
...
์๋ฅผ ๋ค์ด, ๊ตญ๊ฐ ์ด๋ฆ์ ๋ชจ๋ ๋๋ฌธ์๋ก ๋ณํํ ๊ฒฐ๊ณผ๋ฅผ ์๋ก์ด ์ปฌ๋ผ์ ์ ์ฅํด๋ณด๊ฒ ์ต๋๋ค.
for label, row in cars.iterrows():
cars.loc[label, "COUNTRY_UPPER"] = row["country"].upper()
print(cars)
| country | drives_right | COUNTRY_UPPER |
|---|---|---|
| United States | True | UNITED STATES |
| Australia | False | AUSTRALIA |
| Japan | False | JAPAN |
| India | False | INDIA |
| Russia | True | RUSSIA |
apply()๋ก ๋ ๋น ๋ฅด๊ณ ๊ฐ๊ฒฐํ๊ฒ ์ฒ๋ฆฌํ๊ธฐfor ๋ฃจํ๋ณด๋ค ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๋ฐ๋ก apply()๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ๊ฐ์ ์์
์ ํ ์ค๋ก ๋๋ผ ์ ์์ต๋๋ค.
# country ์ปฌ๋ผ์ ๋๋ฌธ์๋ก ๋ณํํ์ฌ ์๋ก์ด ์ปฌ๋ผ ์์ฑ
cars["COUNTRY_UPPER"] = cars["country"].apply(str.upper)
| ๋ฐฉ์ | ์ฅ์ | ๋จ์ |
|---|---|---|
iterrows() | ์ง๊ด์ ์ด๊ณ ์ ์ฐํจ | ์๋๊ฐ ๋๋ฆผ, ์ฝ๋๊ฐ ๊ธธ์ด์ง |
apply() | ๋น ๋ฅด๊ณ ๊ฐ๊ฒฐํจ | ๋ณต์กํ ๋ก์ง์ ์ ์ฐ์ฑ์ด ๋จ์ด์ง ์ ์์ |