์ด ๊ธฐ๋ฅ์ด ์ด์ ์ ์ ์๋ ๊ฒฝ์ฐ ์ฃ์กํฉ๋๋ค. ๋ง์ IO ํจ์(์: read_csv
)๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ ์ ์ฌ์ฉํ์ฌ ๊ฐ ์ด์ ํ์์ ์ฝ๊ฒ ์ง์ ํ ์ ์์ต๋๋ค. ๋ด๊ฐ ์ดํดํ๋ ํ, ์ด๊ฒ์ ์๋๋ค
์ผ๋ฐ ๋ฐ์ดํฐ ํ๋ ์ ๊ตฌ์ฑ์ผ๋ก ๊ฐ๋ฅ, ์:
df = pd.DataFrame(data=data, columns=columns, dtypes={'colname1': str, 'colname2': np.int})
๋ ๋์ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ฌํ ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํ๋ ์ ์ด์ ๋ํด dtypes
๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
df.change_types({'colname1': str, 'colname2': np.int})
์ด๋ฏธ ์ด์ ๊ฐ์ ๊ณํ์ด ์์ต๋๊น?
#9133 ๋ฐ #4464๋ฅผ ์ฐธ์กฐํ์ธ์. ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์ต๋๋ค.
์๋๋ฅผ ํ์๊ฒ ์ต๋๊น?
์ด ๋ฐฉ๋ฒ์ ์ค์ ๋ก ์๋ํฉ๋๋ค.
data_df = data_df.astype( dtype= {"ํ _๋ฒํธ":"int64", "์๋์ฐจ ์ด๋ฆ":"๊ฐ์ฒด","๋ถ_์ฌ์ฉ ์๊ฐ":"float64"})
read_csv( csvFile, dtype={..} )
์ df.astpye(dtype={..} )
์ฐจ์ด์ :
read_csv์ ๊ฒฝ์ฐ ์ ๊ณต๋ dict์ csv์ ์๋ ๋ ๋ง์ ์ด์ด ํฌํจ๋์ด ์์ด๋ ๊ด์ฐฎ์ต๋๋ค. ์ด ์ด์ ์ ์์ ์ผ๋ก ๋ฌด์๋ฉ๋๋ค. astype()
์ ๊ฒฝ์ฐ ์ ์๋ ๋ชจ๋ ์ด์ด ๋ฐ์ดํฐ์ ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
read_csv์ ๋น์ทํด์ผ ํฉ๋๋ค. ์ผ๋ถ ์ด์ ์๊ณ ๋ค๋ฅธ ์ด์ ์์ ์ ์๋ ๋ค์ด์ค๋ ์ฌ์ ์ ๊ฐ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ง๊ธ ๋น์ฅ ํด์ผ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
df = pd.DataFrame( incoming_data )
gtfs_dtypes = { ... } # my master dtypes dict, having all possible column names
gtfs_dtypes_specific = { x:gtfs_dtypes.get(x,'str') for x in df.columns.tolist() }
df = df.astype(dtype=gtfs_dtypes_specific)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฐฉ๋ฒ์ ์ค์ ๋ก ์๋ํฉ๋๋ค.
data_df = data_df.astype( dtype= {"ํ _๋ฒํธ":"int64", "์๋์ฐจ ์ด๋ฆ":"๊ฐ์ฒด","๋ถ_์ฌ์ฉ ์๊ฐ":"float64"})