9์ 1.0.0์ผ Pandas 0.25rc๊ฐ ์ถ์๋์์ต๋๋ค. ์ด์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ XNUMX์ ๋๋ค.
์ฒซ ๋ฒ์งธ ์ฃผ์ ๋ฆด๋ฆฌ์ค์๋ ํฅ์๋ ์๋ ๋ฐ์ดํฐํ๋ ์ ์์ฝ, ๋ ๋ง์ ์ถ๋ ฅ ํ์, ์๋ก์ด ๋ฐ์ดํฐ ์ ํ ๋ฐ ์๋ก์ด ๋ฌธ์ ์ฌ์ดํธ๋ฅผ ํฌํจํ์ฌ ๋ง์ ํ๋ฅญํ ์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ณผ ์ ์์ต๋๋ค.
๋ค์์ ์ฌ์ฉํ์ฌ ํ์์ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ์์ ์์ ์ธ๋ค, ๊ทธ๋ฌ๋ Pandas 1.0์ ์์ฑํ๋ ์์ ๋ถํฐ ์ฌ์ ํ ๋ฆด๋ฆฌ์ค ํ๋ณด, ๋ฒ์ ์ ๋ช ์์ ์ผ๋ก ์ง์ ํด์ผ ํฉ๋๋ค.
pip install --upgrade pandas==1.0.0rc0
์ฃผ์ํ์ธ์: ์ด๊ฒ์ ์ฃผ์ ๋ฆด๋ฆฌ์ค์ด๋ฏ๋ก ์ ๋ฐ์ดํธ๋ก ์ธํด ์ด์ ์ฝ๋๊ฐ ์์๋ ์ ์์ต๋๋ค!
๊ทธ๋ฐ๋ฐ Python 2์ ๋ํ ์ง์์ ์ด ๋ฒ์ ์ดํ๋ก ์์ ํ ์ค๋จ๋์์ต๋๋ค(๋ฌด์์ด ์ข์ ์ด์ ๊ฐ ๋ ๊น์?
$ pip --version
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
$ python --version
Python 3.7.5
Pandas ๋ฒ์ ์ ํ์ธํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
>>> import pandas as pd
>>> pd.__version__
1.0.0rc0
DataFrame.info๋ฅผ ํตํ ์๋ ์์ฝ ๊ฐ์
์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ํ์ ์ ๋ฐฉ๋ฒ์ ์ ๋ฐ์ดํธ์์ต๋๋ค. DataFrame.info. ํจ์์ ๊ฐ๋ ์ฑ์ด ํจ์ฌ ํฅ์๋์ด ๋ฐ์ดํฐ ํ์ ํ๋ก์ธ์ค๊ฐ ๋์ฑ ์ฌ์์ก์ต๋๋ค.
>>> df = pd.DataFrame({
...: 'A': [1,2,3],
...: 'B': ["goodbye", "cruel", "world"],
...: 'C': [False, True, False]
...:})
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 3 non-null int64
1 B 3 non-null object
2 C 3 non-null object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
Markdown ํ์์ผ๋ก ํ ์ด๋ธ ์ถ๋ ฅ
๋ง์ฐฌ๊ฐ์ง๋ก ์ฆ๊ฑฐ์ด ํ์ ์ ๋ค์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐํ๋ ์์ Markdown ํ ์ด๋ธ๋ก ๋ด๋ณด๋ด๋ ๊ธฐ๋ฅ์ ๋๋ค. DataFrame.to_markdown.
>>> df.to_markdown()
| | A | B | C |
|---:|----:|:--------|:------|
| 0 | 1 | goodbye | False |
| 1 | 2 | cruel | True |
| 2 | 3 | world | False |
์ด๋ ๊ฒ ํ๋ฉด github gists๋ฅผ ์ฌ์ฉํ์ฌ Medium๊ณผ ๊ฐ์ ์ฌ์ดํธ์ ํ ์ด๋ธ์ ๊ฒ์ํ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์์ง๋๋ค.
๋ฌธ์์ด๊ณผ ๋ถ์ธ์ ์๋ก์ด ์ ํ
Pandas 1.0 ๋ฆด๋ฆฌ์ค์๋ ์๋ก์ด ๊ธฐ๋ฅ๋ ์ถ๊ฐ๋์์ต๋๋ค. ์คํ์ ์ ํ. API๋ ์ฌ์ ํ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก ์ฃผ์ํด์ ์ฌ์ฉํ์ธ์. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก Pandas๋ ์ ์ ํ ๊ฒฝ์ฐ ์๋ก์ด ์ ํ์ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
์ง๊ธ์ ์บ์คํธ๋ฅผ ๋ช ์์ ์ผ๋ก ์ํํด์ผ ํฉ๋๋ค.
>>> B = pd.Series(["goodbye", "cruel", "world"], dtype="string")
>>> C = pd.Series([False, True, False], dtype="bool")
>>> df.B = B, df.C = C
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 3 non-null int64
1 B 3 non-null string
2 C 3 non-null bool
dtypes: int64(1), object(1), string(1)
memory usage: 200.0+ bytes
์ด์ด ์ด๋ป๊ฒ ํ์๋๋์ง ํ์ธํ์ธ์. D ํ์ ์๋ก์ด ์ ํ์ ํ์ํฉ๋๋ค - ํ ะธ ๋ถ๋๋ฐฐ.
์๋ก์ด ๋ฌธ์์ด ์ ํ์ ๊ฐ์ฅ ์ ์ฉํ ๊ธฐ๋ฅ์ ํ ์ด๋ง ๋ฐ์ดํฐ ํ๋ ์์์. ์ด๋ ๊ฒ ํ๋ฉด ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ํจ์ฌ ์ฝ๊ฒ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ต๋๋ค.
df.select_dtypes("string")
์ด์ ์๋ ์ด๋ฆ์ ๋ช ์์ ์ผ๋ก ์ง์ ํ์ง ์์ผ๋ฉด ํ ์ด์ ์ ํํ ์ ์์์ต๋๋ค.
์๋ก์ด ์ ํ์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.
์ฝ์ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ์ด๋ฏธ ์ธ๊ธํ ๋๋ก ์ ์ฒด ๋ณ๊ฒฝ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com