Блог им. Albus

Место России по поголовью домашних животных

    • 09 июля 2020, 10:41
    • |
    • Albus
  • Еще
Продолжаем качать Питоном и изучать статистику ООН по сельскому хозяйству. На это раз — поголовье домашних животных.
http://www.fao.org/faostat/en/#data/QA
Скрипт скачивает данные, анализирует, отсылает в гугл для перевода и записывает результаты в файл rank.txt. Он появится сам в папке, где вы положите скрипт.
---
В файл записывается это:

Russian Federation has the 6 place in the world in the number of Beehives
Российская Федерация занимает 6 место в мире по количеству ульев
Russian Federation has the 6 place in the world in the number of Ducks
Российская Федерация занимает 6 место в мире по количеству уток
Russian Federation has the 7 place in the world in the number of Geese and guinea fowls
Российская Федерация занимает 7 место в мире по количеству гусей и цесарок
Russian Federation has the 7 place in the world in the number of Pigs
Российская Федерация занимает 7 место в мире по количеству свиней
Russian Federation has the 7 place in the world in the number of Rabbits and hares
Российская Федерация занимает 7 место в мире по количеству кроликов и зайцев
Russian Federation has the 9 place in the world in the number of Chickens
Российская Федерация занимает 9 место в мире по количеству цыплят
Russian Federation has the 9 place in the world in the number of Horses
Российская Федерация занимает 9 место в мире по количеству лошадей
Russian Federation has the 10 place in the world in the number of Turkeys
Российская Федерация занимает 10 место в мире по количеству индеек
Russian Federation has the 16 place in the world in the number of Sheep
Российская Федерация занимает 16 место в мире по количеству овец
Russian Federation has the 18 place in the world in the number of Cattle
Российская Федерация занимает 18 место в мире по количеству крупного рогатого скота


---
Код скрипта:
из внешних библиотек надо установить pandas и googletrans:

pip install pandas
pip install googletrans

# -*- coding: utf-8 -*-

######

from zipfile import ZipFile
import io
from urllib.request import urlopen
import pandas as pd
from time import sleep
from googletrans import Translator
country = 'Russian Federation'
url = "http://fenixservices.fao.org/faostat/static/bulkdownloads/Production_Livestock_E_All_Data_(Normalized).zip"
print ('Качаем данные с сайта Продовольственной организации ООН (FAO)')
file = ZipFile(io.BytesIO(urlopen(url).read()))
type_dict = {'Area Code': 'int64', 'Area' : 'object', 'Item Code' : 'int64', 'Item' : 'object','Element Code' : 'int64',
            'Element' : 'object', 'Year Code' : 'int64', 'Year'  : 'int64', 'Unit' : 'object', 'Value' : 'float64',
            'Flag' : 'object', 'Note' : 'object'}
print ('Из скачанного архива берём файл Production_Livestock_E_All_Data_(Normalized).csv \nСоздаём структуру данных DataFrame')
df = pd.read_csv(file.open("Production_Livestock_E_All_Data_(Normalized).csv"), encoding='latin1', dtype=type_dict,
                  usecols=["Area Code", "Area", "Item Code", "Item", "Element", "Year", "Unit", "Value"])
max_year = df['Year'].max()
print ("Самый близкий доступный год:" + str(max_year))
df = df[df['Year'] == max_year]
df = df[df['Area Code'] < 5000] #убираем макрорегионы типа Африка, Европа. Нам нужны только страны.

# Убираем лишний Китай:
df = df[df['Area Code'] != 96] # 96 China, Hong Kong SAR
df = df[df['Area Code'] != 128] # 128 China, Macao SAR
df = df[df['Area Code'] != 41] # 41 China, mainland
df = df[df['Area Code'] != 214] # 214 China, Taiwan Province of

df = df[df['Item Code'] != 1746] #Убираем Cattle and Buffaloes (они есть по отдельности)
df = df[df['Item Code'] != 2029] #Убираем Poultry Birds (они есть по отдельности)

df_rank = df
df_rank['Rank'] = df_rank.groupby('Item')['Value'].rank(ascending=False)
df_rank = df_rank[df_rank['Area']==country]
df_rank = df_rank[['Item', 'Rank']]
df_rank = df_rank.sort_values(by=['Rank'])
rank_list = df_rank.values.tolist()
open('rank.txt', 'w').close()
for item in rank_list:
	try:
		mesto = int(item[1])
		if mesto <=20:
			line = country + ' has the ' + str(mesto) + ' place in the world in the number of ' + item[0]
			translator = Translator()
			line_russian = translator.translate(line, dest='ru').text
			combined_line = line + '\n' + line_russian
			print (combined_line)
			with open('rank.txt', 'a', encoding='utf8') as file:
				file.write(combined_line + '\n')
				sleep (1) #засыпаем на несколько секунд, чтобы гугл не забанил за множественные запросы.
	except:
		pass

Скачать этот скрипт в виде файла

https://yadi.sk/d/LPs0l3CCyZ7tPg

2.7К | ★1
15 комментариев
Вместо country в коде можно подставить любую другую страну и получить точно такую же статистику по ней:

Ukraine has the 5 place in the world in the number of Rabbits and hares
Украина занимает 5 место в мире по количеству кроликов и зайцев
Ukraine has the 6 place in the world in the number of Geese and guinea fowls
Украина занимает 6 место в мире по количеству гусей и цесарок
Ukraine has the 12 place in the world in the number of Ducks
Украина занимает 12 место в мире по количеству уток
Ukraine has the 20 place in the world in the number of Chickens
Украина занимает 20 место в мире по количеству цыплят

avatar
Albus (Игорь Китаев), лахта внедряет новые технологии ))
Занятная автоматизация, поиска хоть каких-то достижений путина ))
Игорь, это «абсолютные» цифры? Не на душу населения?
Тогда эта стата ни о чём —
можно быть на 1-м месте и всё съедать внутри.
Еще и не всем хватит ))
avatar
VladMih, это да. Можно закачивать ещё и численность населения и делить, чтобы получить на душу населения, но я пока этого не сделал.
Это не сложно, надо найти такую же базу по численности населения и настроить скрипт качать с неё данные.
Как-нибудь допилю.
avatar
Albus (Игорь Китаев), то, что надо взять численность населения — это ты прав, но вот делить ее не на что не надо.

«Власть у нас относится к своему населению, как к домашним животным» © Э.Лимонов.
avatar
Россия была бы на первом месте, если бы по доброте душевной не поддержала суверенитет Белоруссии, согласившись покупать у неё молочку, закрыв после этого свои фермы КРС. Если бы не поддержала другие мелкие страны бывшего СССР, которым нужна валюта, и которые готовы продавать нам по любым ценам. Нам, видимо, нужен их суверинитет (не знаю для чего), потому что если бы мы захотели чтобы они попросились обратно в состав России, то просто перестали бы у них покупать сырьё и с/х продукцию.
avatar
Российская Федерация занимает 16 место в мире по количеству овец
Тут явная деза — должно быть первое место
Мольберт Чебурага, у нас 1-е место по оленям)
avatar

Самый длинный список, конечно же по Китаю:

China has the 1 place in the world in the number of Goats
Китай занимает 1 место в мире по количеству коз
China has the 1 place in the world in the number of Sheep
Китай занимает 1 место в мире по количеству овец
China has the 1 place in the world in the number of Rabbits and hares
Китай занимает 1 место в мире по количеству кроликов и зайцев
China has the 1 place in the world in the number of Pigs
Китай занимает 1 место в мире по количеству свиней
China has the 1 place in the world in the number of Geese and guinea fowls
Китай занимает 1 место в мире по количеству гусей и цесарок
China has the 1 place in the world in the number of Ducks
Китай занял 1 место в мире по количеству уток
China has the 1 place in the world in the number of Sheep and Goats
Китай занимает 1 место в мире по количеству овец и коз
China has the 1 place in the world in the number of Chickens
Китай занимает 1 место в мире по количеству кур
China has the 2 place in the world in the number of Pigeons, other birds
Китай занимает 2 место в мире по количеству голубей, других птиц
China has the 2 place in the world in the number of Beehives
Китай занимает 2 место в мире по количеству ульев
China has the 3 place in the world in the number of Mules
Китай занимает 3 место в мире по количеству мулов
China has the 3 place in the world in the number of Buffaloes
Китай занимает 3 место в мире по количеству буйволов
China has the 4 place in the world in the number of Cattle
Китай занимает 4 место в мире по количеству крупного рогатого скота
China has the 5 place in the world in the number of Horses
Китай занимает 5 место в мире по количеству лошадей
China has the 6 place in the world in the number of Asses
Китай занимает 6 место в мире по количеству ослов
China has the 16 place in the world in the number of Camels
Китай занимает 16 место в мире по количеству верблюдов

avatar
Albus (Игорь Китаев), о как!

А как найти страну, которая занимает 1-е место по количеству ослов? Баранов?

С уважением

P.S. Или баран и овца — это монопенисуально?
Животных в россии 76% от поговоловья
avatar
а гугл хуже переводит, чем яндекс
avatar
Григорий, это же очевидно, для гугла русский язык не родной)))
Котов в списке не увидел
Учитывая, что Россия — 9-ая в мире по населению, все 9-ые места — означают среднее по миру место. 10-ое и ниже — что отстаём.

Так что индейками, овцами и прочими рогатыми скотами надо не гордится, а недоумевать — «чо так мало-то?»

Читайте на SMART-LAB:
Фото
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой...
Фото
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на...
Фото
Как заработать на росте цен на удобрения
Дарья Фёдорова Конфликт на Ближнем Востоке и перекрытие Ормузского пролива вызвали ралли не только цен на нефть и газ, но также алюминий и...
Фото
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем...

теги блога Albus

....все тэги



UPDONW
Новый дизайн