рдкрд╛рдВрдбрд╛ 1.0 рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рд▓реЗрдХрд░ рдЖрдпрд╛

рдкрд╛рдВрдбрд╛ 1.0 рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рд▓реЗрдХрд░ рдЖрдпрд╛

9 рдЬрдирд╡рд░реА рдХреЛ, рдкрд╛рдВрдбрд╛рд╕ 1.0.0rc рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкрд┐рдЫрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 0.25 рд╣реИред

рдкрд╣рд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдХрдИ рдмреЗрд╣рддрд░реАрди рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдмреЗрд╣рддрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕рд╛рд░рд╛рдВрд╢, рдЕрдзрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк, рдирдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдирдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕рд╛рдЗрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

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

рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд░рдВрдЬ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдкрд╛рдВрдбрд╛ 1.0 рдЕрднреА рднреА рд╣реИ рд░рд┐рд▓реАрдЬ рдЙрдореНрдореАрджрд╡рд╛рд░, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

pip install --upgrade pandas==1.0.0rc0

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

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

рдкрдВрдбреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ:

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

рдЗрд╕рд╕реЗ рдЬреАрдердм рдЧрд┐рд╕реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореАрдбрд┐рдпрдо рдЬреИрд╕реА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд╛рдВрдбрд╛ 1.0 рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рд▓реЗрдХрд░ рдЖрдпрд╛

рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдмреВрд▓рд┐рдпрди рдХреЗ рд▓рд┐рдП рдирдП рдкреНрд░рдХрд╛рд░

рдкрд╛рдВрдбрд╛рд╕ 1.0 рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рднреА рдирдпрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░. рдЙрдирдХрд╛ рдПрдкреАрдЖрдИ рдЕрднреА рднреА рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд╛рдВрдбрд╛ рдЬрд╣рд╛рдВ рднреА рдЙрдЪрд┐рдд рд╣реЛ рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред

рдЕрднреА рдХреЗ рд▓рд┐рдП, рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

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

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЙрд▓рдо рдХреИрд╕рд╛ рд╣реИ рдкреНрд░рддрд┐рд░реВрдк рдирдП рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ тИТ рд╕реНрдЯреНрд░рд┐рдВрдЧ ╨╕ bool.

рдирдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдХреЗрд╡рд▓ рдкрдВрдХреНрддрд┐ рд╕реНрддрдВрдн рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕реЗ. рдЗрд╕рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

df.select_dtypes("string")

рдкрд╣рд▓реЗ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдкрдВрдХреНрддрд┐ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред

рдЖрдк рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ.

рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛! рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдпрд╣рд╛рдВ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ