pd.read_csv(), pd.to_csv() -> Modin ๐
๋จธ์ ๋ฌ๋์ ํ์ฉํ๊ฑฐ๋ ๋น ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ฑฐ๋ ์์ ํฌ๋กค๋ง ์์ ์ ํ๋ค ๋ณด๋ฉด csv ํ์ผ์ ๋ง์ด ์ด์ฉํ๊ฒ ๋๋๋ฐ ์ด ๋ pandas ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด pd.read_csv() / pd.to_csv() ๋ช ๋ น์ ์์ฃผ ์ฌ์ฉํ๊ฒ ๋๋ค.
ํ์ง๋ง ๋ฐ์ดํฐ ์ฌ์ด์ฆ๊ฐ ์ปค์ง์๋ก ๊ทธ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ณ ๋ง์ ์๊ฐ์ด ์์๋๋ ๋ฑ ๋ถํธํ ์ ๋ค์ด ์ ์ ๋ฐ์ํ๋ค.
๊ทธ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ถ์ฐ์ปดํจํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ณด๋ค ํจ์จ์ ์ธ ์๋ก์ด ๋์์ ์ฐพ์๋ณด๊ฒ ๋๋ค.
read_csv() ์ ๊ฒฝ์ฐ
import pandas as pd
import dask.dataframe as dd
# Reading a large CSV file with pandas
df_pandas = pd.read_csv('large_dataset.csv')
# Reading the same file with dask
df_dask = dd.read_csv('large_dataset.csv')
# Timing the execution
%timeit df_pandas.head()
%timeit df_dask.head()
์์๋ dask๋ฅผ ํ์ฉํ ์์์ธ๋ฐ ๋ฐ์ดํฐ ์ฌ์ด์ฆ๊ฐ ํด์๋ก ๋ ๋ง์ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
to_csv() ์ ๊ฒฝ์ฐ
import pandas as pd
import fastparquet
# Saving a DataFrame to a Parquet file
df = pd.DataFrame({'column1': [1, 2, 3], 'column2': ['a', 'b', 'c']})
fastparquet.write('output.parquet', df)
์์ ๊ฐ์ด fastparquet์ ํ์ฉํด ๊ณต๊ฐ ๋ฐ ์ฑ๋ฅ ํจ์จ์ ์ผ๋ก ์คํํ ์ ์๋ค.
์ค๋ช ํ ๊ฒ์ฒ๋ผ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ด ๋ง์ง๋ง Modin์ ๋ํด ์์๋ณด๊ฒ ๋์ต๋๋ค!
Modin์ผ๋ก csv๋ฅผ ์ฝ์ด์ค๋ ๋ฒ
import modin.pandas as pd
# Reading a CSV file with Modin
df = pd.read_csv('data.csv')
๋จ์ํ pandas ๋ฅผ ์์ ๊ฐ์ด ๋์ฒด๋ง ํด์ค๋ ๋๋ ์ฌ์ด ๋ฐฉ์์ผ๋ก ์ฑ๋ฅ์ ์ด ์ด๋์ ์ป์ ์ ์๋ค.
Modin์ผ๋ก csv๋ฅผ ์ฐ๋ ๋ฒ
import modin.pandas as pd
# Create a sample DataFrame
df = pd.DataFrame({'column1': [1, 2, 3], 'column2': ['a', 'b', 'c']})
# Writing the DataFrame to a CSV file with Modin
df.to_csv('output.csv', index=False)
ํ์ผ์ ์ฐ๋ ๋ฒ๋ ์ฝ์ด์ค๋ ๊ฒ์ฒ๋ผ ๋์ฒด๋ง ํด์ฃผ๋ฉด ๋ฐ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ ํจ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ ์ฅํ ์ ์๋ค.
์ด์ฒ๋ผ ๋ง์ ๋์ฒด ๋ฐฉ๋ฒ ์ค Modin์ ์๊ฐํ๋ ๊ฒ์ modin.pandas๋ง ํด์ฃผ๋ฉด ์ฝ๋๋ฅผ ์์ ํ์ง ์์๋ ์ด์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ฝ pandas ๋ง์ ๊ณ ์ ๊ธฐ๋ฅ์ด ์์ด ๋ค์ pandas ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ๊ฐ๋จํ switching ํ ์ ์๋ค.
import modin.pandas as pd
# Reading a CSV file with Modin
df = pd.read_csv('data.csv')
# Perform some data analysis with Modin
# Switch to pandas
df = df.__pandas__()
# Continue working with pandas
df.head()
๊ฒฐ๋ก
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ณ์ ๋ฐ์ ํ๊ณ ์ฌ๋ฌ๊ฐ์ง ๋์ฒด ๋ฐฉ๋ฒ๋ค์ ๊ณ์ ๋์ค๊ณ ์์ผ๋ pandas ๋ก ๋งํ๋ค๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค์ ์ฐพ์ ์คํฐ๋ํด ๋ณด๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค.