рдЪреАрдЬрд╝реЛрдВ рдХреА рдЧрд┐рдирддреА рдЖрд╕рд╛рди рд▓рдЧрддреА рд╣реИ, рдЬрдм рддрдХ рдирддреАрдЬреЗ рдереЛрдбрд╝реЗтАФрдпрд╛ рдХрд╛рдлреАтАФрдЧрд▓рдд рди рджрд┐рдЦреЗрдВред рдореИрдВрдиреЗ рдмрд╛рд░-рдмрд╛рд░ list.count() рдХреЙрд▓реНрд╕ рд╕реЗ рдХреА рдЧрдИ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЬрд╛рдБрдЪреЗрдВ рдФрд░ pandas рдХреЗ рдРрд╕реЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рдЪреБрдкрдЪрд╛рдк missing values рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдирддреАрдЬрд╛: рдзреАрдорд╛ рдХреЛрдб рдФрд░ рдЧрд▓рдд рд╕рдВрдЦреНрдпрд╛ред рд╕рдорд╛рдзрд╛рди рд╣реИ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЯреВрд▓ рдЪреБрдирдирд╛: рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдореИрдкреНрд╕ рдХреЗ рд▓рд┐рдП collections.Counter, рдПрдХрд▓ рдорд╛рди рдХреЗ рддреНрд╡рд░рд┐рдд рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди count(), рдФрд░ DataFrame рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ pandas рдХрд╛ value_counts()ред
Counter рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
collections.Counter рд╣реИрд╢реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЧрд┐рдирддреА (рдПрдХ рдорд▓реНрдЯреАрд╕реЗрдЯ) рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд╢рдирд░реА рдХрд╛ рд╕рдмрдХреНрд▓рд╛рд╕ рд╣реИред рдЖрдк рдХрд┐рд╕реА iterable рдпрд╛ mapping рд╕реЗ Counter рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЧреБрдо рдХреБрдВрдЬрд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 0 рд▓реМрдЯрд╛рддреА рд╣реИрдВ; рдХрд╛рдЙрдВрдЯ рдмрдврд╝рд╛рдП рдпрд╛ рдШрдЯрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдФрд░ рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдореЗрдердб рдЖрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред
from collections import Counter
nyc_eatery_types = [
"Mobile Food Truck" , "Food Cart" , "Snack Bar" , "Restaurant" , "Food Cart" ,
"Restaurant" , "Mobile Food Truck" , "Snack Bar" , "Mobile Food Truck"
]
eatery_type_counts = Counter( nyc_eatery_types)
print ( eatery_type_counts)
print ( eatery_type_counts[ "Restaurant" ] )
print ( eatery_type_counts[ "Kiosk" ] ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Counter( { 'Mobile Food Truck' : 3 , 'Food Cart' : 2 , 'Snack Bar' : 2 , 'Restaurant' : 2 } )
2
0 рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Counter рдХреЗ iteration рдХреНрд░рдо рдкрд░ рдирд┐рд░реНрднрд░ рди рд░рд╣реЗрдВред рдЬрдм рд░реИрдВрдХрд┐рдВрдЧ рдЪрд╛рд╣рд┐рдП, рддреЛ most_common() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
most_common() рд╕реЗ рд╕рдмрд╕реЗ рдЖрдо рдорд╛рди рдвреВрдБрдвреЗрдВ
Counter.most_common(n) рдШрдЯрддреЗ рдХреНрд░рдо рдореЗрдВ (item, count) рдпреБрдЧреНрдореЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП n рджреЗрдВ, рдпрд╛ рд╕рднреА рдпреБрдЧреНрдо рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВред
top_3 = eatery_type_counts. most_common( 3 )
print ( top_3) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
[ ( 'Mobile Food Truck' , 3 ) , ( 'Food Cart' , 2 ) , ( 'Snack Bar' , 2 ) ] рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЗрд╕реЗ рддрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХреЛ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕, рд▓реАрдбрд░рдмреЛрд░реНрдбреНрд╕, рдпрд╛ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдкрд░ рддреНрд╡рд░рд┐рдд sanity checks рдЪрд╛рд╣рд┐рдПред
Counter рд╕реЗ рдФрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
update рдФрд░ subtract рд╕реЗ рдХрд╛рдЙрдВрдЯ рдмрджрд▓реЗрдВ
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдбреЗрдЯрд╛ рдмрджрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред update() рдХрд╛рдЙрдВрдЯ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ subtract() рдЙрдиреНрд╣реЗрдВ рдШрдЯрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ iterable рдпрд╛ mapping рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
new_permits = [ "Restaurant" , "Food Cart" , "Restaurant" ]
eatery_type_counts. update( new_permits)
print ( eatery_type_counts)
closures = { "Snack Bar" : 1 }
eatery_type_counts. subtract( closures)
print ( eatery_type_counts) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Counter( { 'Mobile Food Truck' : 3 , 'Restaurant' : 4 , 'Food Cart' : 3 , 'Snack Bar' : 2 } )
Counter( { 'Restaurant' : 4 , 'Mobile Food Truck' : 3 , 'Food Cart' : 3 , 'Snack Bar' : 1 } ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрджрд┐ рдХреЛрдИ рдХрд╛рдЙрдВрдЯ 0 рдпрд╛ рдЙрд╕рд╕реЗ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ elements() рдФрд░ most_common() рдЬреИрд╕реЗ рдореЗрдердб рдЙрд╕реЗ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХреБрдВрдЬреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП del counter[key] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХреБрд▓ рдЬреЛрдбрд╝реЗрдВ рдФрд░ Top-N рдирд┐рдХрд╛рд▓реЗрдВ
Python 3.10 рд╕реЗ, Counter.total() рд╕рднреА рдХрд╛рдЙрдВрдЯ рдХрд╛ рдпреЛрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЕрдиреБрдкрд╛рдд рдпрд╛ рд╢реЗрдпрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рдпрд╣ рд╕рд╣рд╛рдпрдХ рд╣реИред
total_permits = eatery_type_counts. total( )
for eatery, count in eatery_type_counts. most_common( 3 ) :
share = count / total_permits
print ( f" { eatery} : { count} ( { share: .1% } )" ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
elements() рд╕реЗ рдХреНрд░рдо рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдХрд░реЗрдВ
elements() рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдЙрд╕рдХреЗ рдХрд╛рдЙрдВрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рд░-рдмрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдХреНрд░рдо рдордирдорд╛рдирд╛ рд╣реЛрддрд╛ рд╣реИред
expanded = list ( eatery_type_counts. elements( ) )
print ( len ( expanded) , "items reconstructed from counts" ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЧрдгрд┐рдд рдФрд░ рд╕реЗрдЯ-рд╢реИрд▓реА рдХреЗ рдСрдкрд░реЗрд╢рди рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЖрдк рдХрд╛рдЙрдВрдЯрд░реНрд╕ рдХреЛ рдЕрдВрдХрдЧрдгрд┐рдд рдФрд░ min/max рд╢реИрд▓реА рдХреЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рд╕реЗ рдорд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рд╢реВрдиреНрдп рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдХрд╛рдЙрдВрдЯ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред
from collections import Counter
a = Counter( { "Food Cart" : 5 , "Restaurant" : 2 } )
b = Counter( { "Food Cart" : 3 , "Snack Bar" : 4 } )
print ( a + b)
print ( a - b)
print ( a & b)
print ( a | b) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Counter( { 'Food Cart' : 8 , 'Snack Bar' : 4 , 'Restaurant' : 2 } )
Counter( { 'Food Cart' : 2 , 'Restaurant' : 2 } )
Counter( { 'Food Cart' : 3 } )
Counter( { 'Food Cart' : 5 , 'Snack Bar' : 4 , 'Restaurant' : 2 } ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
list.count(), Counter, рдпрд╛ pandas рдХрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕реАрдорд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЯреВрд▓ рдЪреБрдиреЗрдВред
рдПрдХрд▓ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ count() рд╕реЗ
рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдХреЛрдИ рдПрдХ рдорд╛рди рдХрд┐рддрдиреА рдмрд╛рд░ рдЖрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЧреИрд░-рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рдЙрдВрдЯ рдЪрд╛рд╣рд┐рдП, рддреЛ рдмрд┐рд▓реНрдЯ-рдЗрди count() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
numbers = [ 1 , 2 , 2 , 3 , 2 ]
print ( numbers. count( 2 ) )
word = "banana"
print ( word. count( "a" ) )
text = "aaa"
print ( text. count( "aa" ) )
print ( "cat" . count( "" ) ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдмреВрд▓рд┐рдпрди рдФрд░ рдЗрдВрдЯреАрдЬрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: True == 1 рдФрд░ False == 0ред рдпрджрд┐ рдЖрдк рдкреНрд░рдХрд╛рд░ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рдЙрдВрдЯ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
mixed = [ 1 , True , 0 , False , True ]
print ( mixed. count( 1 ) )
print ( mixed. count( 0 ) ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдкрд░ рд▓реВрдкреНрд╕ рдХреЗ рдЕрдВрджрд░ count() рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ; рд╣рд░ рдХреЙрд▓ рдкреВрд░рд╛ рдЕрдиреБрдХреНрд░рдо рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИред
from collections import Counter
freq = Counter( numbers) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдХрдИ рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд▓рд┐рдП Counter
рдЬрдм рдЖрдкрдХреЛ рдХрдИ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рдиреЛрдВ рдХреЗ рдХрд╛рдЙрдВрдЯ рдЪрд╛рд╣рд┐рдП, рддреЛ рдПрдХ рдмрд╛рд░ Counter рдмрдирд╛рдПрдБ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ, рддреЗрдЬрд╝, рдФрд░ рдЗрд╕реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реИред
pandas рдХреЗ рд╕рд╛рде рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛
pandas рдореЗрдВ, DataFrame.count() рдФрд░ Series.count() non-missing рдХрд╛рдЙрдВрдЯ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП Series.value_counts() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
import pandas as pd
df = pd. DataFrame( {
"line" : [ "A" , "A" , "B" , None , "B" , "B" ] ,
"ridership" : [ 100 , None , 120 , 130 , None , 150 ] ,
} )
print ( df[ "line" ] . count( ) )
print ( df[ "line" ] . value_counts( ) )
print ( len ( df) ) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Counter рд╕реЗ рдбреЗрдЯрд╛ рд╡реИрд▓рд┐рдбреЗрдЯ рдФрд░ рдХреНрд▓реАрди рдХрд░реЗрдВ
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╢реНрд░реЗрдгреАрдЧрдд рд╕реНрдерд┐рд░рддрд╛, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рди, рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЬрд╛рдБрдЪрддрд╛ рд╣реВрдБред Counter рдпреЗ рдЬрд╛рдБрдЪреЗрдВ рддреЗрдЬрд╝ рдФрд░ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛ рджреЗрддрд╛ рд╣реИред
from collections import Counter
allowed_types = { "Mobile Food Truck" , "Food Cart" , "Snack Bar" , "Restaurant" }
type_counts = Counter( nyc_eatery_types)
unexpected = { t: c for t, c in type_counts. items( ) if t not in allowed_types}
if unexpected:
print ( "Unexpected categories found:" , unexpected)
station_ids = [ "ST-001" , "ST-002" , "ST-003" , "ST-002" , "ST-004" , "ST-002" ]
dup_counts = Counter( station_ids)
duplicates = [ sid for sid, c in dup_counts. items( ) if c > 1 ]
print ( "Duplicate station IDs:" , duplicates) рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдиреЛрдЯреНрд╕ рдФрд░ рдЖрдо рдЧрд▓рддрд┐рдпрд╛рдБ
рдпреЗ рдмрд┐рдВрджреБ рд╕рдордп рдмрдЪрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдХреНрд╖реНрдо рдмрдЧреНрд╕ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВред
Counter рдбрд┐рдХреНрд╢рдирд░реА рдЬреИрд╕рд╛ рд╣реИ: рдЧреБрдо рдХреБрдВрдЬрд┐рдпрд╛рдБ 0 рд▓реМрдЯрд╛рддреА рд╣реИрдВ; рдПрдВрдЯреНрд░реА рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП del counter[key] рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЬрдм рддрдХ рдЕрд╕реНрдерд╛рдпреА рдЬрд╝рд░реВрд░рдд рди рд╣реЛ, рд╢реВрдиреНрдп рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред
iteration рдХреНрд░рдо рдкрд░ рдирд┐рд░реНрднрд░ рди рд░рд╣реЗрдВред рд░реИрдВрдХреНрдб рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП most_common() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
str.count() рдЧреИрд░-рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдореИрдЪ рдЧрд┐рдирддрд╛ рд╣реИред рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рдЙрдВрдЯ рдХреЗ рд▓рд┐рдП re.finditer() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдПрдХ рд╣реА рдмрдбрд╝реЗ рдЕрдиреБрдХреНрд░рдо рдкрд░ рдмрд╛рд░-рдмрд╛рд░ list.count() рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ Counter рдмрдирд╛рдПрдБред
pandas рдореЗрдВ, .count() non-missing рдХрд╛рдЙрдВрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ; рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд▓рд┐рдП .value_counts() рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╡реЗ рдиреНрдпреВрдирддрдо рдкреИрдЯрд░реНрди рдЬрд┐рди рдкрд░ рдореИрдВ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдБ
рдпреЗ рд╡реЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдкреНрд░реЛрдбрдХреНрд╢рди рдФрд░ рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБред
рдПрдХ-рдкрд╛рд╕ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдореИрдк: Counter(iterable)
рдЯреЙрдк-N рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ: Counter(data).most_common(n)
рдЗрдиреНрдХреНрд░реАрдореЗрдВрдЯрд▓ рдЕрдкрдбреЗрдЯреНрд╕: counter.update(batch) рдпрд╛ counter.subtract(batch)
рдПрдХрд▓ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ: sequence.count(x) (рд▓реВрдкреНрд╕ рдореЗрдВ рди рдХрд░реЗрдВ)
рд╕рд╛рд░рдгреАрдмрджреНрдз рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА: df["col"].value_counts() ( df.count() рдирд╣реАрдВ)
рдирд┐рд╖реНрдХрд░реНрд╖
collections.Counter рдХрдИ рдорд╛рдиреЛрдВ рдХреА рдЧрд┐рдирддреА рддреЗрдЬрд╝реА рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рдЯреВрд▓ рд╣реИред рдПрдХрдореБрд╢реНрдд рдЬрд╛рдБрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди count() , рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдореИрдкреНрд╕ рдФрд░ рдЯреЙрдк-N рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП Counter , рдФрд░ pandas рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп Series.value_counts() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ-рдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ, рдмреВрд▓рд┐рдпрдитАУрдЗрдВрдЯреАрдЬрд╝рд░ рд╕рдордХрдХреНрд╖рддрд╛, рдФрд░ non-missing рдХрд╛рдЙрдВрдЯ рддрдерд╛ рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рдЕрдВрддрд░ рдкрд░ рдзреНрдпрд╛рди рд░рдЦреЗрдВред рдЗрди рдкреИрдЯрд░реНрдиреНрд╕ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреА рдЧрд┐рдирддрд┐рдпрд╛рдБ рддреЗрдЬрд╝ рднреА рд╣реЛрдВрдЧреА рдФрд░ рд╕рд╣реА рднреАред
рдЪреАрдЬрд╝реЛрдВ рдХреА рдЧрд┐рдирддреА рдЖрд╕рд╛рди рд▓рдЧрддреА рд╣реИ, рдЬрдм рддрдХ рдирддреАрдЬреЗ рдереЛрдбрд╝реЗтАФрдпрд╛ рдХрд╛рдлреАтАФрдЧрд▓рдд рди рджрд┐рдЦреЗрдВред рдореИрдВрдиреЗ рдмрд╛рд░-рдмрд╛рд░
list.count()рдХреЙрд▓реНрд╕ рд╕реЗ рдХреА рдЧрдИ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЬрд╛рдБрдЪреЗрдВ рдФрд░ pandas рдХреЗ рдРрд╕реЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рдЪреБрдкрдЪрд╛рдк missing values рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдирддреАрдЬрд╛: рдзреАрдорд╛ рдХреЛрдб рдФрд░ рдЧрд▓рдд рд╕рдВрдЦреНрдпрд╛ред рд╕рдорд╛рдзрд╛рди рд╣реИ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЯреВрд▓ рдЪреБрдирдирд╛: рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдореИрдкреНрд╕ рдХреЗ рд▓рд┐рдПcollections.Counter, рдПрдХрд▓ рдорд╛рди рдХреЗ рддреНрд╡рд░рд┐рдд рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрдиcount(), рдФрд░ DataFrame рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ pandas рдХрд╛value_counts()редCounter рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
collections.Counterрд╣реИрд╢реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЧрд┐рдирддреА (рдПрдХ рдорд▓реНрдЯреАрд╕реЗрдЯ) рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд╢рдирд░реА рдХрд╛ рд╕рдмрдХреНрд▓рд╛рд╕ рд╣реИред рдЖрдк рдХрд┐рд╕реА iterable рдпрд╛ mapping рд╕реЗCounterрдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЧреБрдо рдХреБрдВрдЬрд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 0 рд▓реМрдЯрд╛рддреА рд╣реИрдВ; рдХрд╛рдЙрдВрдЯ рдмрдврд╝рд╛рдП рдпрд╛ рдШрдЯрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдФрд░ рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдореЗрдердб рдЖрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВредCounterрдХреЗ iteration рдХреНрд░рдо рдкрд░ рдирд┐рд░реНрднрд░ рди рд░рд╣реЗрдВред рдЬрдм рд░реИрдВрдХрд┐рдВрдЧ рдЪрд╛рд╣рд┐рдП, рддреЛmost_common()рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредmost_common() рд╕реЗ рд╕рдмрд╕реЗ рдЖрдо рдорд╛рди рдвреВрдБрдвреЗрдВ
Counter.most_common(n)рдШрдЯрддреЗ рдХреНрд░рдо рдореЗрдВ(item, count)рдпреБрдЧреНрдореЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПnрджреЗрдВ, рдпрд╛ рд╕рднреА рдпреБрдЧреНрдо рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВредрдЗрд╕реЗ рддрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХреЛ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕, рд▓реАрдбрд░рдмреЛрд░реНрдбреНрд╕, рдпрд╛ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдкрд░ рддреНрд╡рд░рд┐рдд sanity checks рдЪрд╛рд╣рд┐рдПред
Counter рд╕реЗ рдФрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
update рдФрд░ subtract рд╕реЗ рдХрд╛рдЙрдВрдЯ рдмрджрд▓реЗрдВ
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдбреЗрдЯрд╛ рдмрджрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред
update()рдХрд╛рдЙрдВрдЯ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐subtract()рдЙрдиреНрд╣реЗрдВ рдШрдЯрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ iterable рдпрд╛ mapping рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВредрдпрджрд┐ рдХреЛрдИ рдХрд╛рдЙрдВрдЯ 0 рдпрд╛ рдЙрд╕рд╕реЗ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ
elements()рдФрд░most_common()рдЬреИрд╕реЗ рдореЗрдердб рдЙрд╕реЗ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХреБрдВрдЬреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПdel counter[key]рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдХреБрд▓ рдЬреЛрдбрд╝реЗрдВ рдФрд░ Top-N рдирд┐рдХрд╛рд▓реЗрдВ
Python 3.10 рд╕реЗ,
Counter.total()рд╕рднреА рдХрд╛рдЙрдВрдЯ рдХрд╛ рдпреЛрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЕрдиреБрдкрд╛рдд рдпрд╛ рд╢реЗрдпрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рдпрд╣ рд╕рд╣рд╛рдпрдХ рд╣реИредelements() рд╕реЗ рдХреНрд░рдо рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдХрд░реЗрдВ
elements()рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдЙрд╕рдХреЗ рдХрд╛рдЙрдВрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рд░-рдмрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдХреНрд░рдо рдордирдорд╛рдирд╛ рд╣реЛрддрд╛ рд╣реИредрдЧрдгрд┐рдд рдФрд░ рд╕реЗрдЯ-рд╢реИрд▓реА рдХреЗ рдСрдкрд░реЗрд╢рди рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЖрдк рдХрд╛рдЙрдВрдЯрд░реНрд╕ рдХреЛ рдЕрдВрдХрдЧрдгрд┐рдд рдФрд░ min/max рд╢реИрд▓реА рдХреЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рд╕реЗ рдорд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рд╢реВрдиреНрдп рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдХрд╛рдЙрдВрдЯ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред
list.count(), Counter, рдпрд╛ pandas рдХрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕реАрдорд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЯреВрд▓ рдЪреБрдиреЗрдВред
рдПрдХрд▓ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ count() рд╕реЗ
рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдХреЛрдИ рдПрдХ рдорд╛рди рдХрд┐рддрдиреА рдмрд╛рд░ рдЖрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЧреИрд░-рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рдЙрдВрдЯ рдЪрд╛рд╣рд┐рдП, рддреЛ рдмрд┐рд▓реНрдЯ-рдЗрди
count()рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдмреВрд▓рд┐рдпрди рдФрд░ рдЗрдВрдЯреАрдЬрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ:
True == 1рдФрд░False == 0ред рдпрджрд┐ рдЖрдк рдкреНрд░рдХрд╛рд░ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рдЙрдВрдЯ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВредрдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдкрд░ рд▓реВрдкреНрд╕ рдХреЗ рдЕрдВрджрд░
count()рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ; рд╣рд░ рдХреЙрд▓ рдкреВрд░рд╛ рдЕрдиреБрдХреНрд░рдо рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИредрдХрдИ рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд▓рд┐рдП Counter
рдЬрдм рдЖрдкрдХреЛ рдХрдИ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рдиреЛрдВ рдХреЗ рдХрд╛рдЙрдВрдЯ рдЪрд╛рд╣рд┐рдП, рддреЛ рдПрдХ рдмрд╛рд░
Counterрдмрдирд╛рдПрдБ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ, рддреЗрдЬрд╝, рдФрд░ рдЗрд╕реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реИредpandas рдХреЗ рд╕рд╛рде рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛
pandas рдореЗрдВ,
DataFrame.count()рдФрд░Series.count()non-missing рдХрд╛рдЙрдВрдЯ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдПSeries.value_counts()рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредCounter рд╕реЗ рдбреЗрдЯрд╛ рд╡реИрд▓рд┐рдбреЗрдЯ рдФрд░ рдХреНрд▓реАрди рдХрд░реЗрдВ
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╢реНрд░реЗрдгреАрдЧрдд рд╕реНрдерд┐рд░рддрд╛, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рди, рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЬрд╛рдБрдЪрддрд╛ рд╣реВрдБред
CounterрдпреЗ рдЬрд╛рдБрдЪреЗрдВ рддреЗрдЬрд╝ рдФрд░ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛ рджреЗрддрд╛ рд╣реИредрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдиреЛрдЯреНрд╕ рдФрд░ рдЖрдо рдЧрд▓рддрд┐рдпрд╛рдБ
рдпреЗ рдмрд┐рдВрджреБ рд╕рдордп рдмрдЪрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдХреНрд╖реНрдо рдмрдЧреНрд╕ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВред
Counterрдбрд┐рдХреНрд╢рдирд░реА рдЬреИрд╕рд╛ рд╣реИ: рдЧреБрдо рдХреБрдВрдЬрд┐рдпрд╛рдБ 0 рд▓реМрдЯрд╛рддреА рд╣реИрдВ; рдПрдВрдЯреНрд░реА рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПdel counter[key]рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЬрдм рддрдХ рдЕрд╕реНрдерд╛рдпреА рдЬрд╝рд░реВрд░рдд рди рд╣реЛ, рд╢реВрдиреНрдп рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВредmost_common()рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредstr.count()рдЧреИрд░-рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдореИрдЪ рдЧрд┐рдирддрд╛ рд╣реИред рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рдЙрдВрдЯ рдХреЗ рд▓рд┐рдПre.finditer()рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредlist.count()рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХCounterрдмрдирд╛рдПрдБред.count()non-missing рдХрд╛рдЙрдВрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ; рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд▓рд┐рдП.value_counts()рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрд╡реЗ рдиреНрдпреВрдирддрдо рдкреИрдЯрд░реНрди рдЬрд┐рди рдкрд░ рдореИрдВ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдБ
рдпреЗ рд╡реЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдкреНрд░реЛрдбрдХреНрд╢рди рдФрд░ рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБред
Counter(iterable)Counter(data).most_common(n)counter.update(batch)рдпрд╛counter.subtract(batch)sequence.count(x)(рд▓реВрдкреНрд╕ рдореЗрдВ рди рдХрд░реЗрдВ)df["col"].value_counts()(df.count()рдирд╣реАрдВ)рдирд┐рд╖реНрдХрд░реНрд╖
collections.CounterрдХрдИ рдорд╛рдиреЛрдВ рдХреА рдЧрд┐рдирддреА рддреЗрдЬрд╝реА рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рдЯреВрд▓ рд╣реИред рдПрдХрдореБрд╢реНрдд рдЬрд╛рдБрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрдиcount(), рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдореИрдкреНрд╕ рдФрд░ рдЯреЙрдк-N рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдПCounter, рдФрд░ pandas рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордпSeries.value_counts()рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ-рдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ, рдмреВрд▓рд┐рдпрдитАУрдЗрдВрдЯреАрдЬрд╝рд░ рд╕рдордХрдХреНрд╖рддрд╛, рдФрд░ non-missing рдХрд╛рдЙрдВрдЯ рддрдерд╛ рдорд╛рдиреЛрдВ рдХреА рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рдЕрдВрддрд░ рдкрд░ рдзреНрдпрд╛рди рд░рдЦреЗрдВред рдЗрди рдкреИрдЯрд░реНрдиреНрд╕ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреА рдЧрд┐рдирддрд┐рдпрд╛рдБ рддреЗрдЬрд╝ рднреА рд╣реЛрдВрдЧреА рдФрд░ рд╕рд╣реА рднреАред