์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- sqld
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ง์ผํ
- ํ์ด์ฌ
- ์๋์ฐ ํจ์
- ๋จธ์ ๋ฌ๋
- ์ฝ๋์นดํ
- ์ฝ๋ฉ
- ์บ๊ธ
- sql
- ๋ ํ
- TIL
- ๋ฐ์ดํฐ๋ถ์
- ๋ฐ์ดํฐ ๋ถ์
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
- Today
- Total
SQL & Python Study
[D+19][ํ๋ก์ ํธ #1-1] CSV ํ์ผ ์ ๋ก๋ ์๋ฌ(Error occurred during batch insert) ๋ณธ๋ฌธ
[D+19][ํ๋ก์ ํธ #1-1] CSV ํ์ผ ์ ๋ก๋ ์๋ฌ(Error occurred during batch insert)
๊น์ฎ์ 2024. 5. 18. 01:42
๐ฅ ๋๋์ด ๋ฐ์ดํฐ๋ถ์ ๋ถํธ์บ ํ ์ฒซ ๋ฒ์งธ ํ ํ๋ก์ ํธ๋ฅผ ์์ํ์ต๋๋ค๐ฅ
์ฒซ ํ๋ก์ ํธ ์ฃผ์ ๋ <๋ง์ผํ ์ฑ๊ณผ ์ธก์ ์ ์ํ ๋ฐ์ดํฐ ๋ถ์ - Hotel booking demand>๋ก ์ ์ ํ์ต๋๋ค.
๋ฐ์ดํฐ ๋ถ์์ด ๋ง์ด ํ์ฉ๋๋ ์๋น์ค ๊ธฐํ ํน์ ๋ง์ผํ ๋ถ์ผ ํ๋ก์ ํธ ์งํํ๊ณ ์ถ์๊ฑฐ๋ ์!
์บ๊ธ์ Hotel booking demand ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋๋ฐ์.
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ฅผ ์ํด DBeaver ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ถ๋ฌ์ค๋ ๊ณผ์ ์์ ์ค๋ฅ๋ฅผ ๋ง์ฃผํ๊ฒ ๋์ด
์ด๋ป๊ฒ ์ด๋ฅผ ํด๊ฒฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์๋์ง ์๊ฐํด๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค :)
โ ๏ธ ์ค๋ ๋ง์ฃผํ ์๋ฌ ๋ฉ์์ง โ ๏ธ
Error occurred during batch insert
(you can disable batch insert in order to skip particular rows).
์ด์ :
Can't parse numeric value [NA] using formatter
"Error occurred during batch insert"
์ ์ค๋ฅ ๋ฉ์์ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด ์ฝ์ (batch insert)ํ๋ ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ์๋ฏธํ๋ค๊ณ ํด์.
ํด๋น ์ค๋ฅ๋ ์๋ ์์ธ ๋ฑ์ผ๋ก ์ธํด ๋ฐ์ํ๋๋ฐ, ๊ตฌ์ฒด์ ์ธ ์์ธ์ ํ๋จ ๋ฉ์์ง๋ฅผ ํตํด์ ํ์ธํ ์ ์์ต๋๋ค!
โ ๋ฐ์ดํฐ ํ์์ ๋ฌธ์
โก NULL ๊ฐ ๋ฌธ์
โข ์ค๋ณตํค ๋ฌธ์
โฃ ๋ฌธ์์ด ๋ฐ์ดํฐ ๊ธธ์ด๊ฐ ํ์ฉ์น๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ
โค ์ธ๋ ํค ์ ์ฝ ์กฐ๊ฑด์ ์๋ฐํ ๊ฒฝ์ฐ ๋ฑ๋ฑ.
์ด์ : Can't parse numeric value [NA] using formatter
์ ๊ฒฝ์ฐ์๋ CSV ํ์ผ์ ์ซ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ ์ ์๋ ๊ฐ[NA]์ MYSQL๋ก ๊ฐ์ ธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด๋ด ๋ CSV ํ์ผ์์ 'NA' ๊ฐ์ ์ ๊ฑฐํ๊ฑฐ๋,
์ ์ ํ ๊ฐ(ex. NA → NULL)์ผ๋ก ๋์ฒดํด ์ค ์ ์๊ณ ,
์์ ์๋ชป๋ ํ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ฐ๋๋ก ์ค์ ํ ์ ์์ด์.
์ ๋ ๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ ์ ์งํ๊ณ ์ถ์ด์
NA๋ฅผ NULL ๊ฐ์ผ๋ก ๋์ฒดํด์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ ํํ์ต๋๋ค.
ํ์ด์ฌ์ ํ์ฉํด์ Na์ NaN์ผ๋ก ๋ฐ๊ฟ์ฃผ์๊ณ ,
์ฒ๋ฆฌ๊ฐ ๋๋ ํ์ผ์ ์ ์ปดํจํฐ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด ์ ์ฅํด ์ฃผ์์ต๋๋ค.
ํด๋น ํ์ผ์ MYSQL์ ์ ์์ ์ผ๋ก ์ ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค :)
import pandas as pd
# CSV ํ์ผ ์ฝ๊ธฐ
input_path = "C:/Users/_____/Downloads/hotel_bookings.csv"
df = pd.read_csv(input_path)
# 'NA'๋ฅผ NaN์ผ๋ก ๋ณํ
df.replace('NA', pd.NA, inplace=True)
# CSV ํ์ผ๋ก ์ ์ฅ
output_path = "C:/Users/_____/Downloads/processed_hotel_booking_file.csv"
df.to_csv(output_path, index=False)
print(f"File saved to {output_path}")
์ฐธ๊ณ ์ฌํญ.
- ํ์ผ ๊ฒฝ๋ก๋ ์ฐํด๋ฆญํ์ฌ ๋ณต์ฌํ ์ ์์ด์.
์ฒ์ ๋ณต์ฌํ ํ์ผ ๊ฒฝ๋ก๋ \ (๋ฐฑ์ฌ๋์)๋ฅผ ์ฌ์ฉํด์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ฐ,
/(์ฌ๋์)๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ์ค๋ฅ ์์ด CSV ํ์ผ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. - CSV ํ์ผ ์ ์ฅ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด ํ๋ก๊ทธ๋จ ๋๋ ํ ๋ฆฌ์๋ง ์ ์ฅ๋์ด ์ปดํจํฐ์์ ํ์ผ์ ์ฐพ์ ์ ์์ด์.
๋ง์ฝ ํด๋น ํ๋ก๊ทธ๋จ์ผ๋ก ์ ์ฒ๋ฆฌ์ EDA, ์๊ฐํ๊น์ง ์ญ- ์งํํ๋ค๋ฉด ๋ณ๋๋ก ์ ์ฅํ ํ์๋ ์์ง๋ง,
๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ง์ ์ ๋ก๋ํ ๊ฑฐ๋ผ๋ฉด ์ ์ฅ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด ์ฃผ์ธ์. - ์ ์ฝ๋์์ ๊ตฌ์ฒด์ ์ธ ํ์ผ ๊ฒฝ๋ก๋ _____๋ก ๋์ฒดํด๋์์ต๋๋ค.