
ΠΠ° 9 ΡΠ½ΡΠ°ΡΠΈ Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Pandas 1.0.0rc. ΠΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ 0.25.
ΠΡΡΠ²ΠΈΡΡ ΠΌΠ°ΠΆΠΎΡΠ΅Π½ ΡΠ΅Π»ΠΈΠ· ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±ΠΎΠ±ΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄, Π½ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄ΠΎΡΠΈ Π½ΠΎΠ² ΡΠ°ΠΉΡ Π·Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ , Π² ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌ Π΄ΠΎ ΠΊΡΠ°ΡΡΠΊ, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π°, ΠΊΠ°ΠΊΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° pip, Π½ΠΎ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Pandas 1.0 Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ release candidate, ΡΠ΅ ΡΡΡΠ±Π²Π° ΡΠ²Π½ΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π²Π΅ΡΡΠΈΡΡΠ°:
pip install --upgrade pandas==1.0.0rc0ΠΡΠ΄Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΈ: ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅Π»ΠΈΠ·ΡΡ Π΅ ΠΌΠ°ΠΆΠΎΡΠ΅Π½, Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΡΠΏΠΈ ΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄!
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, Ρ ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Python 2 (ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ Π΄ΠΎΠ±ΡΡ ΠΏΠΎΠ²ΠΎΠ΄ β Π±Π΅Π». ΠΏΡΠ΅Π².). Pandas 1.0 ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ½Π΅ Python 3.6+, ΡΠ°ΠΊΠ° ΡΠ΅ Π°ΠΊΠΎ Π½Π΅ ΡΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΡΠΎΡΠ½Π΅ΡΠ΅ ΠΊΠΎΡ Π²Π΅ΡΡΠΈΡ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π° Ρ Π²Π°Ρ:
$ 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()
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
ΠΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΈΡΡΠ½ΠΎΡΠΎ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° DataFrame ΠΊΡΠΌ ΡΠ°Π±Π»ΠΈΡΠΈ 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()
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ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Dtype ΠΏΠΎΠΊΠ°Π·Π²Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ β string ΠΈΒ bool.
ΠΠ°ΠΉ-ΠΏΠΎΠ»Π΅Π·Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π° Π½ΠΎΠ²ΠΈΡ ΡΠΈΠΏ Π½ΠΈΠ·ΠΎΠ²Π΅ Π΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΡ DataFrame. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ»Π΅ΡΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ:
df.select_dtypes("string")ΠΠΎ-ΡΠ°Π½ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Ρ Π±Π΅Π· ΡΠ²Π½ΠΎΡΠΎ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ°.
ΠΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ .
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ, ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΠ΅! ΠΡΠ»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΠΊΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
