ΠΠ° 9 ΡΠ°Π½ΡΠ°ΡΠΈ Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ Pandas 1.0.0rc. ΠΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ 0.25.
ΠΡΠ²ΠΎΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ΄ΡΠΆΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΎΠ΄Π»ΠΈΡΠ½ΠΈ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΡΡΠΌΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΌΠΊΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ·Π»Π΅Π·Π½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ, Π½ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΏΠ° Π΄ΡΡΠΈ ΠΈ Π½ΠΎΠ²Π° Π»ΠΎΠΊΠ°ΡΠΈΡΠ° Π·Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°.
Π‘ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄Π°Ρ
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ ΠΈ ΠΎΠ±ΠΈΡΠ½ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΏΠΈΠΏΠΊΠ°, Π½ΠΎ Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΡ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ 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 |
ΠΠ²Π° Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ Π½Π° ΡΠ°ΡΡΠΎΠ²ΠΈ ΠΊΠ°ΠΊΠΎ Medium ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° github gists.
ΠΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π° ΠΆΠΈΡΠΈ ΠΈ Π±ΡΠ»ΠΎΠ²ΠΈ
ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° 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
ΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° ΠΡΠΈΠΏ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° Π½ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ β Π½ΠΈΠ·Π° ΠΈ Π±ΡΠΌ.
ΠΠ°ΡΠΊΠΎΡΠΈΡΠ½Π°ΡΠ° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈΠΎΡ ΡΠΈΠΏ Π½Π° ΡΡΡΠΈΠ½Π³ Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π½Π° ΡΠ΅Π΄ΠΎΠ²ΠΈ ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΠΎΡΠ½ΠΈ ΡΠ°ΠΌΠΊΠΈ. ΠΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΠΈ ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ:
df.select_dtypes("string")
ΠΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ, ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ°Ρ Π±Π΅Π· Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠ°Π°Ρ ΠΈΠΌΠΈΡΠ°ΡΠ°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²ΠΈ
ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π²ΡΠ΅! Π¦Π΅Π»ΠΎΡΠ½Π°ΡΠ° Π»ΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π²Π΅ΡΠ΅ Π±Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅
ΠΠ·Π²ΠΎΡ: www.habr.com