9 рдЬрд╛рдиреЗрд╡рд╛рд░реА рд░реЛрдЬреА, Pandas 1.0.0rc рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓рд╛. рд▓рд╛рдпрдмреНрд░рд░реАрдЪреА рдорд╛рдЧреАрд▓ рдЖрд╡реГрддреНрддреА 0.25 рдЖрд╣реЗ.
рдкрд╣рд┐рд▓реНрдпрд╛ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЭрдордзреНрдпреЗ рд╕реБрдзрд╛рд░рд┐рдд рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдбреЗрдЯрд╛рдлреНрд░реЗрдо рд╕рд╛рд░рд╛рдВрд╢, рдЕрдзрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк, рдирд╡реАрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рдЕрдЧрджреА рдирд╡реАрди рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╕рд╛рдЗрдЯрд╕рд╣ рдЕрдиреЗрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрд╣реЗрдд.
рд╕рд░реНрд╡ рдмрджрд▓ рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд
рддреБрдореНрд╣реА рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗ рд▓рд╛рдпрдмреНрд░рд░реА рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░реВ рд╢рдХрддрд╛ рд╡рд╛рд│реАрдд рдЯрд╛рдХрдгреЗ, рдкрд░рдВрддреБ рдкрд╛рдВрдбрд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реА 1.0 рдЕрдЬреВрдирд╣реА рдЖрд╣реЗ рдЙрдореЗрджрд╡рд╛рд░ рд╕реЛрдбрд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡реГрддреНрддреА рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓:
pip install --upgrade pandas==1.0.0rc0
рд╕рд╛рд╡рдзрдЧрд┐рд░реА рдмрд╛рд│рдЧрд╛: рд╣реЗ рдПрдХ рдкреНрд░рдореБрдЦ рдкреНрд░рдХрд╛рд╢рди рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЕрджреНрдпрддрди рдЬреБрдирд╛ рдХреЛрдб рдЦрдВрдбрд┐рдд рдХрд░реВ рд╢рдХрддреЛ!
рддрд╕реЗ, рдпрд╛ рдЖрд╡реГрддреНрддреАрдкрд╛рд╕реВрди рдкрд╛рдпрдерди 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
рдкрд╛рдВрдбрд╛ рдЖрд╡реГрддреНрддреА рддрдкрд╛рд╕рдгреНрдпрд╛рдЪрд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ:
>>> 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 рд╡рд╛рдкрд░реВрди рдордзреНрдпрдо рд╕рд╛рд░рдЦреНрдпрд╛ рд╕рд╛рдЗрдЯрд╡рд░ рд╕рд╛рд░рдгреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдХрд░рддреЗ.
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдгрд┐ рдмреБрд▓рд┐рдпрдирд╕рд╛рдареА рдирд╡реАрди рдкреНрд░рдХрд╛рд░
рдкрд╛рдВрдбрд╛ 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 рдирд╡реАрди рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ - рд╕реНрдЯреНрд░рд┐рдВрдЧ ╨╕ рдмреВрд▓.
рдирд╡реАрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░рд╛рддреАрд▓ рд╕рд░реНрд╡рд╛рдд рдЙрдкрдпреБрдХреНрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдореНрд╣рдгрдЬреЗ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдлрдХреНрдд рдкрдВрдХреНрддреА рд╕реНрддрдВрдн рдбреЗрдЯрд╛рдлреНрд░реЗрдордордзреВрди. рд╣реЗ рдордЬрдХреВрд░ рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдХрд░реВ рд╢рдХрддреЗ:
df.select_dtypes("string")
рдкреВрд░реНрд╡реА, рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд╛рд╡реЗ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рдкрдВрдХреНрддреА рд╕реНрддрдВрдн рдирд┐рд╡рдбрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╡реНрд╣рддреЗ.
рдЖрдкрдг рдирд╡реАрди рдкреНрд░рдХрд╛рд░рд╛рдВрдмрджреНрджрд▓ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛
рд╡рд╛рдЪрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж! рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдмрджрд▓рд╛рдВрдЪреА рд╕рдВрдкреВрд░реНрдг рдпрд╛рджреА рдкрд╛рд╣рд┐рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ
рд╕реНрддреНрд░реЛрдд: www.habr.com