рд╣рдо рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд░реВрд╕реА рд╢рд╣рд░реЛрдВ рдХреА рдЬрд▓рд╡рд╛рдпреБ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ

рдкрд╛рдпрдерди рдореЗрдВ, рдЖрдк рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рди рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рднреА: рдЬреАрд╡рд╡рд┐рдЬреНрдЮрд╛рдиреА, рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдиреА рдФрд░ рд╕рдорд╛рдЬрд╢рд╛рд╕реНрддреНрд░реАред рдЖрдЬ, рд╢рд╛рд╡рд░реНрд╕ рдХреЗ рд╕рд╛рде, рдПрдЖрдИ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рдпрдерди рдЬрдореНрдкрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рдХреНрдпреВрд░реЗрдЯрд░, рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдореМрд╕рдо рд╡рд┐рдЬреНрдЮрд╛рдирд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд░реВрд╕реА рд╢рд╣рд░реЛрдВ рдХреА рдЬрд▓рд╡рд╛рдпреБ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВрдЧреЗред рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ, рд╣рдо рдкрдВрдбреЛрдВ, рдорд╛рдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдФрд░ рдмреЛрдХреЗрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред



рд╣рдо рдПрдЬрд╝реНрдпреЛрд░ рдиреЛрдЯрдмреБрдХ рдкрд░ рд░рд┐рд╕рд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬреБрдкрд╛рдЗрдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреЗ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдгред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдо рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдмрд╕ рдЕрдкрдиреЗ Microsoft рдЦрд╛рддреЗ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЙрд╕рдореЗрдВ рдирдпрд╛ Python 3 рд▓реИрдкрдЯреЙрдк рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ


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

import pandas as pd import matplotlib.pyplot as plt 

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЛ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ CSV рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╣реА рддреИрдпрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред CSV рдПрдХ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдХреЙрд▓рдо рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдирд╛рдо - рдХреЛрдорд╛ рд╕реЗрдкрд░реЗрдЯреЗрдб рд╡реИрд▓реНрдпреВрдЬред

рдкрд╛рдВрдбрд╕ рд╕реАрдПрд╕рд╡реА рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдиреАрдп рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реАрдзреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рднреА рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рдЦреБрдж GitHub рдкрд░ рд╣рдорд╛рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ , рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╣реА URL рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 data = pd.read_csv("https://raw.githubusercontent.com/shwars/PythonJump/master/Data/climat_russia_cities.csv") data 



рддрд╛рд▓рд┐рдХрд╛ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдирд╛рдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛред рд╣рдореЗрдВ рдЙрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрдм рд╣рдо pd.to_numeric рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЕрдЬреАрдм рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдорд╛рдЗрдирд╕ рдХреЗ рдмрдЬрд╛рдп, рдкрд╛рда рдореЗрдВ рд▓рдВрдмреЗ рдбреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 data.columns=["City","Lat","Long","TempMin","TempColdest","AvgAnnual","TempWarmest","AbsMax","Precipitation"] data["TempMin"] = pd.to_numeric(data["TempMin"]) 

 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) pandas/_libs/src/inference.pyx in pandas._libs.lib.maybe_convert_numeric() ValueError: Unable to parse string "тИТ38.0" ... ... ... ValueError: Unable to parse string "тИТ38.0" at position 0 

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреИрддрд┐рдХрддрд╛ рд╣реИ: рдбреЗрдЯрд╛ рдЖрдорддреМрд░ рдкрд░ "рдЧрдВрджреЗ" рд░реВрдк рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрд╛ рдХрд╛рд░реНрдп рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдЕрдЪреНрдЫреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд▓рд╛рдирд╛ рд╣реИред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХреБрдЫ рд╕реНрддрдВрдн рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ float64 рдмрдЬрд╛рдп рдЯрд╛рдЗрдк object ред рдРрд╕реЗ рд╕реНрддрдВрднреЛрдВ рдореЗрдВ, рд╣рдо рдбреИрд╢ рдХреЛ рдорд╛рдЗрдирд╕ рд╕реЗ рдмрджрд▓ рджреЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рд╕рдВрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗред рдЬрд┐рди рд╕реНрддрдВрднреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╢рд╣рд░ рдХреЗ рдирд╛рдо) рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВрдЧреЗ (рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдореБрдЦреНрдп errors='ignore' рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ errors='ignore' )ред

 print(data.dtypes) for x in ["TempMin","TempColdest","AvgAnnual"]: data[x] = data[x].str.replace('тИТ','-') data = data.apply(pd.to_numeric,errors='ignore') print(data.dtypes) 

 City object Lat float64 Long float64 TempMin object TempColdest object AvgAnnual object TempWarmest float64 AbsMax float64 Precipitation int64 dtype: object City object Lat float64 Long float64 TempMin float64 TempColdest float64 AvgAnnual float64 TempWarmest float64 AbsMax float64 Precipitation int64 dtype: object 

рд╣рдо рдбреЗрдЯрд╛ рдкрд░ рд╢реЛрдз рдХрд░рддреЗ рд╣реИрдВ


рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрд╡рдЪреНрдЫ рдбреЗрдЯрд╛ рд╣реИ, рддреЛ рд╣рдо рджрд┐рд▓рдЪрд╕реНрдк рд░реЗрдЦрд╛рдВрдХрди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд╕рдд рд╡рд╛рд░реНрд╖рд┐рдХ рддрд╛рдкрдорд╛рди


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдХреНрд╖рд╛рдВрд╢ рдкрд░ рдФрд╕рдд рддрд╛рдкрдорд╛рди рдХреИрд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

 ax = data.plot(x="Lat",y="AvgAnnual",kind="Scatter") ax.set_xlabel("") ax.set_ylabel(" ") 



рдЧреНрд░рд╛рдл рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рднреВрдордзреНрдп рд░реЗрдЦрд╛ рдХреЗ рдХрд░реАрдм, рдЧрд░реНрдоред

рд░рд┐рдХреЙрд░реНрдб рд╢рд╣рд░реЛрдВ


рдЕрдм рд╣рдо рдЙрди рд╢рд╣рд░реЛрдВ рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЬреЛ рддрд╛рдкрдорд╛рди рдЪреИрдВрдкрд┐рдпрди рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╢рд╣рд░ рдореЗрдВ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рддрд╛рдкрдорд╛рди рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╣реИ рдпрд╛ рдирд╣реАрдВред

 ax=data.plot(x="TempMin",y="AbsMax",kind="scatter") ax.set_xlabel("  ") ax.set_ylabel("  ") ax.invert_xaxis() 



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИред рддреЗрдЬреА рд╕реЗ рдорд╣рд╛рджреНрд╡реАрдкреАрдп рдЬрд▓рд╡рд╛рдпреБ рд╡рд╛рд▓реЗ рд╢рд╣рд░ рд╣реИрдВ, рдФрд░ рд╕рд┐рд░реНрдл рдЧрд░реНрдо рдФрд░ рдардВрдбреЗ рд╢рд╣рд░ рд╣реИрдВред рд╣рдо рдПрдХ рдЕрдзрд┐рдХрддрдо рддрд╛рдкрдорд╛рди рдкреНрд░рд╕рд╛рд░ рд╡рд╛рд▓реЗ рд╢рд╣рд░реЛрдВ рдХреЛ рдЦреЛрдЬрддреЗ рд╣реИрдВ, рдпрд╛рдиреА рддреЗрдЬреА рд╕реЗ рдорд╣рд╛рджреНрд╡реАрдкреАрдп рдЬрд▓рд╡рд╛рдпреБ рд╡рд╛рд▓реЗ рд╢рд╣рд░ред

 data['spread'] = data['TempWarmest'] - data['TempColdest'] data.nlargest(3,'spread') 



рдЗрд╕ рдмрд╛рд░ рд╣рдордиреЗ рдЙрдЪреНрдЪ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЧрд░реНрдо рдФрд░ рд╕рдмрд╕реЗ рдардВрдбрд╛ рдорд╣реАрдирд╛ рд░рд╣рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рд╕рдЦрд╛ рдЧрдгрд░рд╛рдЬреНрдп (рдпрд╛рдХреВрддрд┐рдпрд╛) рд╕реЗ рд╢рд╣рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдмрд┐рдЦрд░рд╛рд╡ред

рд╕рд░реНрджреА рдФрд░ рдЧрд░реНрдореА


рдЖрдЧреЗ рдХреЗ рд╢реЛрдз рдХреЗ рд▓рд┐рдП, рдорд╛рд╕реНрдХреЛ рд╕реЗ 300 рдХрд┐рдореА рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╢рд╣рд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдореЗрдВ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рднреВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ pip install рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

 !pip install geopy import geopy.distance 

рдЯреЗрдмрд▓ рдкрд░ рдПрдХ рдФрд░ рдХреЙрд▓рдо рдЬреЛрдбрд╝реЗрдВ - рдорд╛рд╕реНрдХреЛ рдХреА рджреВрд░реАред

 msk_coords = tuple(data.loc[data["City"]==""][["Lat","Long"]].iloc[0]) data["DistMsk"] = data.apply(lambda row : geopy.distance.distance(msk_coords,(row["Lat"],row["Long"])).km,axis=1) data.head() 



рд╣рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдмреНрдпрд╛рдЬ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

 msk = data.loc[data['DistMsk']<300] msk 



рдЗрди рд╢рд╣рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреНрдпреВрдирддрдо, рдФрд╕рдд рд╡рд╛рд░реНрд╖рд┐рдХ рдФрд░ рдЕрдзрд┐рдХрддрдо рддрд╛рдкрдорд╛рди рдХрд╛ рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

 ax=msk.plot(x="City",y=["TempColdest","AvgAnnual","TempWarmest"],kind="bar",stacked="true") ax.legend(["","",""],loc='lower right') 



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдорд╛рд╕реНрдХреЛ рдХреЗ рдЖрд╕рдкрд╛рд╕ 300 рдХрд┐рд▓реЛрдореАрдЯрд░ рдХреЗ рднреАрддрд░ рдХреЛрдИ рднреА рд╡рд┐рд╕рдВрдЧрддрд┐ рдирд╣реАрдВ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИред рдЗрд╡рд╛рдиреЛрд╡реЛ рдмрд╛рдХреА рд╢рд╣рд░реЛрдВ рдХреЗ рдЙрддреНрддрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдВ рддрд╛рдкрдорд╛рди рдХрдИ рдбрд┐рдЧреНрд░реА рдХрдо рд╣реИред

рдЬрд┐рдпреЛ-рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдЕрдм рд╣рдо рд╢рд╣рд░реЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдФрд╕рдд рд╡рд╛рд░реНрд╖рд┐рдХ рд╡рд░реНрд╖рд╛ рдХреЗ рдирдХреНрд╢реЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд░реНрд╖рд╛ рдХреИрд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА - рдмреЛрдХреЗрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдлрд┐рд░ рд╣рдо рдПрдХ рдФрд░ рдХреЙрд▓рдо рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ - рд╕рд░реНрдХрд▓ рдХрд╛ рдЖрдХрд╛рд░, рдЬреЛ рд╡рд░реНрд╖рд╛ рдХреА рдорд╛рддреНрд░рд╛ рджрд┐рдЦрд╛рдПрдЧрд╛ред рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдЪрдпрди рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 !pip install bokeh from bokeh.io import output_file, output_notebook, show from bokeh.models import ( GMapPlot, GMapOptions, ColumnDataSource, Circle, LogColorMapper, BasicTicker, ColorBar, DataRange1d, PanTool, WheelZoomTool, BoxSelectTool, HoverTool ) from bokeh.models.mappers import ColorMapper, LinearColorMapper from bokeh.palettes import Viridis5 from bokeh.plotting import gmap 

рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Google рдорд╛рдирдЪрд┐рддреНрд░ API рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирдХреНрд╢реЗ рдкрд░ рдкреНрд▓реЙрдЯ рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдмреЛрдХреЗрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

 google_key = "<INSERT YOUR KEY HERE>" data["PrecipSize"] = data["Precipitation"] / 50.0 map_options = GMapOptions(lat=msk_coords[0], lng=msk_coords[1], map_type="roadmap", zoom=4) plot = gmap(google_key,map_options=map_options) plot.title.text = "    " source = ColumnDataSource(data=data) my_hover = HoverTool() my_hover.tooltips = [('', '@City'),('','@Precipitation')] plot.circle(x="Long", y="Lat", size="PrecipSize", fill_color="blue", fill_alpha=0.8, source=source) plot.add_tools(PanTool(), WheelZoomTool(), BoxSelectTool(), my_hover) output_notebook() show(plot) 



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрдЯреАрдп рд╢рд╣рд░реЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖рд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╣рд░реЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдмрд╛рд░рд┐рд╢ рдФрд╕рдд рдпрд╛ рд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕реНрддрд░ рд╕реЗ рднреА рдХрдо рд╣реИред

рджрд┐рдорд┐рддреНрд░реА рд╕реЛрд╢рдирд┐рдХреЛрд╡ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдХреЛрдб, рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦ рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдкрд░рд┐рдгрд╛рдо


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

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

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

рдЗрд╕рдореЗрдВ рдЬрд┐рдпреЛрдкреНрд▓реЗрдЯрд┐рдм , рдкреНрд▓реЙрдЯрд▓реА , рдорд┐рдирд┐рдорд▓рд┐рд╕реНрдЯрд┐рдХ рд▓реЗрджрд░ рдФрд░ рдЕрдиреНрдп рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЖрдкрдХреЛ рдмрд╛рдЗрдирд░реА рдбрд┐рд╕реНрдЯреНрд░рд┐рдХреНрдЯ рд╕реЗ рдПрдХ рджрд┐рди рдХреЗ рдЧрд╣рди - рдПрдЖрдИ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдЬрдореНрдкрд╕реНрдЯрд╛рд░реНрдЯ рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi422463/


All Articles