
๊ฐ์ ํ์์ ๋ฐ์ดํฐ ํฉ์น๊ธฐ : concat()
๋ฐ์ดํฐ ํ๋ ์์ ๋ง๋ค์ด์คฌ๋ค.

๊ฐ๊ฐ ๋ฐ์ดํฐํ๋ ์์ ํ์ธํ๋ฉด ์๋์ ๊ฐ๋ค.

์ด์ฐจํผ ๊ฐ์ ์์ด ์ ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฐ์ดํฐ ํ๋ ์์ด๋ผ ๋๊ฐ๋ฅผ ํฉ์น๋ค.
concat()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ๋๊ฒจ์ค๋ค.

๊ทธ๋ฌ๋ ์ธ๋ฑ์ค๊ฐ ์ด์ํ๊ฒ ๋์จ๋ค.
ignore_index
ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํด True๋ก ์ง์ ํด์ฃผ๋ฉด ์ธ๋ฑ์ค๋ ๊น๋ํ๊ฒ ๋์จ๋ค.

์ด๋ฅผ ์๋ก์ด ๋ณ์๋ก ์ ์ฅํด์ค๋ค.

์ด๋ฒ์๋ ์ํ์ ์ ๋ฐ์ดํฐํ๋ ์์ ๋ง๋ค์ด์ฃผ์๋ค.

์์ด ์ ์์ ์ํ ์ ์๋ฅผ ํฉ์ณ์ฃผ์๋๋ ๊ทธ๋ฅ ์ปฌ๋ผ ํ๋๋ฅผ ๋ ๋ง๋ค์ด ๋ถ์๋ค.
์ด์ํ ๊ฒฐ๊ณผ๋ค.

axis=1 ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์์ผ๋ก ๋ถ์ฌ์ค๋ค.

์ค์ต
import pandas as pd
sales_2020_df = pd.read_csv('data/sales_2020.csv')
sales_2021_df = pd.read_csv('data/sales_2021.csv')
sales_2022_df = pd.read_csv('data/sales_2022.csv')
# ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.
sales_df = pd.concat([sales_2020_df,sales_2021_df,sales_2022_df])
sales_df

์กฐ์ธ ์ฐ์ฐ









์ปฌ๋ผ ๊ธฐ์ค ๋ฐ์ดํฐ ํฉ์น๊ธฐ : merge()
๊ธฐ๋ณธ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ

merge()
๋๊ฐ์ ๋ฐ์ดํฐํ๋ ์์ ํฉ์ณ์ค๋ค. ์ด๋ ๊ธฐ์ค์ด ๋๋ key๊ฐ์ id๋ก ํ๋ค.
on ํ๋ผ๋ฏธํฐ

๊ธฐ๋ณธ ์กฐ์ธ ๋ฐฉ๋ฒ์ inner ์กฐ์ธ์ด๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํ๊ณ ์ถ๋ค๋ฉด how ๋ผ๋ ํ๋ผ๋ฏธํฐ์
left, right, outer ๋ก ์จ์ ๋ฐ๊ฟ ์ ์๋ค.


์ฌ๊ธฐ์ ๋๊ฐ์ ๋ฐ์ดํฐ ํ๋ ์์ id๋ฅผ ํค๊ฐ์ผ๋ก ํฉ์ณค๋๋ฐ, department๋ ์ผ์นํ๋ ์ ๋ณด์ด๋ค. ๊ทธ๋ฌ๋ฉด ์๋์ผ๋ก ์ปฌ๋ผ๋ช ๋ค์ _x, _y๋ก ๋ถ์ด์ ๋์ค์ง๋ง ๋ด๊ฐ ์ค์ ํด์ค ์๋ ์๋ค.
suffixes ๋ผ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํด์ ์ผ์ชฝ์ด๋ฆ, ์ค๋ฅธ์ชฝ ์ด๋ฆ์ ์ง์ ํด์ค๋ค.

๋ง์ฝ ๋์ผํ ํค๊ฐ์ ๊ฐ์ง๊ณ ์๋๋ฐ ๊ทธ ํค์ ์ปฌ๋ผ๋ช ์ด ๋ค๋ฅด๋ค๋ฉด left_on, right_on ์ด๋ผ๋ ํ๋ผ๋ฏธํฐ๋ก ์ง์ ํ ์ ์๋ค.

์ค์ต
import pandas as pd
asteroid_df = pd.read_csv('data/asteroid.csv')
orbit_df = pd.read_csv('data/orbit.csv')
# ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.
nasa_df = pd.merge(asteroid_df, orbit_df, left_on='id', right_on='asteroid_id')
nasa_df


์ธ๋ฑ์ค ๊ธฐ์ค ๋ฐ์ดํฐ ํฉ์น๊ธฐ : join()
๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์จ ๋ค์ ์ธ๋ฑ์ค๋ฅผ ์์ด๋๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.

join()
ํจ์๋ ๊ธฐ๋ณธ์ด left outer join์ด๋ค.
๊ฐ์ ์ปฌ๋ผ๋ช ์ ๋ํด ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋๊ธฐ๋๋ฌธ์ lsuffix, rsuffix ๋ผ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํด ์ง์ ํด์ค๋ค.

ํ๊ฐ๋ง ์ง์ ํด์ค๋๋๋ค.

๋ง์ฝ ์กฐ์ธ ๋ฐฉ๋ฒ์ ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด, merge์ฒ๋ผ how ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํด ๋ฐ๊ฟ์ค๋ค.

์ค์ต
import pandas as pd
asteroid_df = pd.read_csv('data/asteroid.csv', index_col='id')
orbit_df = pd.read_csv('data/orbit.csv', index_col='asteroid_id')
# ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.
nasa_df = asteroid_df.join(orbit_df, how='inner')
nasa_df


์กฐ์ธํ ๋ฐ์ดํฐ๋ก ์๋ก์ด ์ธ์ฌ์ดํธ ์ป๊ธฐ
ํด์ฌํ ์ง์๊ณผ ์ฌ์ง์ค์ธ ์ง์์ ๋ง์กฑ๋ ์กฐ์ฌ๋ฅผ ๋น๊ตํ๋ค.

์ปค๋ฆฌ์ด ๋ถ๋ฌธ์์ 1์ ์ ์ฐจ์ด๊ฐ ๋๋ค.
์ธ์ฌํ์ ์ปค๋ฆฌ์ด ๊ฐ๋ฐ์ ์ํ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ ๋๋ ๊ต์ก์ ํด์ผ๋ ๊ฒ์ด๋ค.

์ฝ๋์ 18. ๋ฐ์ดํฐ ํฉ์น๊ธฐ
'๋ง์ผํ > ๋ฐ์ดํฐ ๋ถ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
RFM ๋ถ์ (0) | 2025.03.17 |
---|---|
[ํ์ด์ฌ] ๊ทธ๋ฃน๋ณ๋ก ๋ถ์ํ๊ธฐ (0) | 2025.03.14 |
[ํ์ด์ฌ] ๋ ์ง์ ์๊ฐ ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ (0) | 2025.03.14 |
[ํ์ด์ฌ] ์ซ์ ๋ฐ์ดํฐ ๊ฐ๊ณตํ๊ธฐ (0) | 2025.03.14 |
[ํ์ด์ฌ] ๋ฌธ์ ๋ฐ์ดํฐ ๊ฐ๊ณตํ๊ธฐ (0) | 2025.03.13 |