Π¨Ρ‚ΠΎ Π½ΠΈ донСсоа Pandas 1.0

Π¨Ρ‚ΠΎ Π½ΠΈ донСсоа Pandas 1.0

На 9 Ρ˜Π°Π½ΡƒΠ°Ρ€ΠΈ бСшС објавСн Pandas 1.0.0rc. ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π΅ 0.25.

ΠŸΡ€Π²ΠΎΡ‚ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ содрТи ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΠ΄Π»ΠΈΡ‡Π½ΠΈ Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡƒΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ автоматско ΡΡƒΠΌΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ‡Π½ΠΈΡ‚Π΅ Ρ€Π°ΠΌΠΊΠΈ, повСќС ΠΈΠ·Π»Π΅Π·Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, Π½ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, ΠΏΠ° Π΄ΡƒΡ€ΠΈ ΠΈ Π½ΠΎΠ²Π° Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°.

Π‘ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄Π°Ρ‚ Ρ‚ΡƒΠΊΠ°, Π²ΠΎ написот ќС сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌΠ΅ Π½Π° ΠΌΠ°Π», ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π½Π°Ρ˜Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја инсталиратС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΊΠ°ΠΊΠΎ ΠΈ ΠΎΠ±ΠΈΡ‡Π½ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΏΠΈΠΏΠΊΠ°, Π½ΠΎ бидСјќи Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Pandas 1.0 сè ΡƒΡˆΡ‚Π΅ Π΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚, ќС Ρ‚Ρ€Π΅Π±Π° Сксплицитно Π΄Π° ја Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π°:

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()
<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

Нови Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π·Π° ΠΆΠΈΡ†ΠΈ ΠΈ Π±ΡƒΠ»ΠΎΠ²ΠΈ

Π˜Π·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° 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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€