рдкрд╛рдгреНрдбрд╛ рез.реж рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рд▓реНрдпрд╛рдпреЛ

рдкрд╛рдгреНрдбрд╛ рез.реж рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рд▓реНрдпрд╛рдпреЛ

рдЬрдирд╡рд░реА 9 рдорд╛, Pandas 1.0.0rc рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕рдВрд╕реНрдХрд░рдг реж.реирел рд╣реЛред

рдкрд╣рд┐рд▓реЛ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрдорд╛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛рдлреНрд░реЗрдо рд╕рд╛рд░рд╛рдВрд╢, рдердк рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛рд╣рд░реВ, рдирдпрд╛рдБ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ, рд░ рдирдпрд╛рдБ рдХрд╛рдЧрдЬрд╛рдд рд╕рд╛рдЗрдЯрд╣рд░реВ рд╕рд╣рд┐рдд рдзреЗрд░реИ рдЙрддреНрдХреГрд╖реНрдЯ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдпрд╣рд╛рдБ, рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдЖрдлреИрд▓рд╛рдИ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬрд╣рд░реВрдХреЛ рд╕рд╛рдиреЛ, рдХрдо рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдореАрдХреНрд╖рд╛рдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрдиреЗрдЫреМрдВред

рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ PIP, рддрд░ рдкрд╛рдгреНрдбрд╛ 1.0 рд▓реЗрдЦреНрдиреЗ рд╕рдордпрдорд╛ рдЕрдЭреИ рдкрдирд┐ рдЫ рдЙрдореНрдореЗрджрд╡рд╛рд░ рд░рд┐рд╣рд╛, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ:

pip install --upgrade pandas==1.0.0rc0

рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреБрд╣реЛрд╕реН: рдХрд┐рдирдХрд┐ рдпреЛ рдПрдХ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рд╣реЛ, рдЕрдкрдбреЗрдЯрд▓реЗ рдкреБрд░рд╛рдиреЛ рдХреЛрдб рддреЛрдбреНрди рд╕рдХреНрдЫ!

рдЦреИрд░, рдкрд╛рдЗрдерди реи рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдпрд╕ рд╕рдВрд╕реНрдХрд░рдгрджреЗрдЦрд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдмрдиреНрдж рдЧрд░рд┐рдПрдХреЛ рдЫ (рдХреЗ рд░рд╛рдореНрд░реЛ рдХрд╛рд░рдг рд╣реБрди рд╕рдХреНрдЫ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рдж)ред Pandas 1.0 рд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ рдкрд╛рдЗрдерди 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

рдорд╛рд░реНрдХрдбрд╛рдЙрди рдврд╛рдБрдЪрд╛рдорд╛ рдЖрдЙрдЯрдкреБрдЯ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ

рдПрдХ рд╕рдорд╛рди рд░рдорд╛рдИрд▓реЛ рдирд╡реАрдирддрд╛ рднрдиреЗрдХреЛ рдорд╛рд░реНрдХрдбрд╛рдЙрди рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд┐рд░реНрдпрд╛рдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд╣реЛ DataFrame.to_markdown.

>>> df.to_markdown()
|    |   A | B       | C     |
|---:|----:|:--------|:------|
|  0 |   1 | goodbye | False |
|  1 |   2 | cruel   | True  |
|  2 |   3 | world   | False |

рдпрд╕рд▓реЗ github gists рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдордзреНрдпрдо рдЬрд╕реНрддрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред

рдкрд╛рдгреНрдбрд╛ рез.реж рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рд▓реНрдпрд╛рдпреЛ

рддрд╛рд░ рд░ рдмреБрд▓рд┐рдпрдирдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░рд╣рд░реВ

Pandas 1.0 рд░рд┐рд▓рд┐рдЬрд▓реЗ рдкрдирд┐ рдирдпрд╛рдБ рдердкреНрдпреЛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░рд╣рд░реВред рддрд┐рдиреАрд╣рд░реВрдХреЛ API рдЕрдЭреИ рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрди рд╕рдХреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдкрд╛рдгреНрдбрд╛рд╣рд░реВрд▓реЗ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫрдиреН рдЬрд╣рд╛рдБ рдпреЛ рдЕрд░реНрде рд▓рд╛рдЧреНрдЫред

рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐, рдХрд╛рд╕реНрдЯ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

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

рд╕реНрддрдореНрдн рдХрд╕рд░реА рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН Dtype рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ - string ╨╕ рдлреВрд▓.

рдирдпрд╛рдБ рд╕реНрдЯреНрд░рд┐рдЩ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рдЪрдпрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд╣реЛ рдкрдЩреНрдХреНрддрд┐ рд╕реНрддрдореНрднрд╣рд░реВ рдорд╛рддреНрд░ рдбрд╛рдЯрд╛рдлреНрд░реЗрдордмрд╛рдЯред рдпрд╕рд▓реЗ рдкрд╛рда рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕ рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрди рд╕рдХреНрдЫ:

df.select_dtypes("string")

рдкрд╣рд┐рд▓реЗ, рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд╛рдорд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирдЧрд░реА рдкрдЩреНрдХреНрддрд┐ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред

рддрдкрд╛рдИрдВ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ.

рдкрдвреНрдиреБ рднрдПрдХреЛрдорд╛ рдзрдиреНрдпрд╡рд╛рдж! рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реВрдЪреА, рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рд╣реЗрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдпрд╣рд╛рдБ.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди