Skip to content

Instantly share code, notes, and snippets.

@legale
Created November 24, 2022 13:16
Show Gist options
  • Select an option

  • Save legale/eb1cb0d5c8101f5a5bf1aadfb6d0c1ed to your computer and use it in GitHub Desktop.

Select an option

Save legale/eb1cb0d5c8101f5a5bf1aadfb6d0c1ed to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "324e40a6",
"metadata": {
"scrolled": true,
"tags": []
},
"outputs": [],
"source": [
"# first install deps\n",
"# pip install xlrd openpyxl numpy pandas py7zr prepack\n",
"#!pip3 install xlrd openpyxl numpy pandas py7zr "
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "379eb00f",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"import zipfile as zip\n",
"import os\n",
"import sys\n",
"\n",
"sys.path.append('/home/ruslan/prepack')\n",
"from prepack import prepack as pp\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dcf19066",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>10</th>\n",
" <th>11</th>\n",
" <th>12</th>\n",
" <th>13</th>\n",
" <th>14</th>\n",
" <th>15</th>\n",
" <th>16</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Таблица 1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Меры, принимаемые субъектом Российской Федерац...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Субъект Российской Федерации</td>\n",
" <td>Меры \\n(краткое описание)</td>\n",
" <td>Принадлежность меры\\n(федеральная/\\nрегиональная)</td>\n",
" <td>Вид документа (федеральный/\\nрегиональный, рек...</td>\n",
" <td>Срок действия</td>\n",
" <td>Направление меры, \\nобласть воздействия \\n(под...</td>\n",
" <td>Панируемый результат (комментарии)</td>\n",
" <td>Фактический результат принятой меры по состоян...</td>\n",
" <td>Оценка востребованности меры \\n(по шкале от 0 ...</td>\n",
" <td>Причина низкой востребованности или невостребо...</td>\n",
" <td>Стоимость меры в 2022 году, в млн. рублей</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Возможные риски \\n(при наличии)</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>федеральный бюджет</td>\n",
" <td>бюджет субъекта Российской Федерации</td>\n",
" <td>внебюджетные источники</td>\n",
" <td>Льготы\\n(выпадающие доходы)</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Общеэкономические</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 Меры, принимаемые субъектом Российской Федерац... \n",
"3 NaN \n",
"4 Субъект Российской Федерации \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 1 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Меры \\n(краткое описание) \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 2 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Принадлежность меры\\n(федеральная/\\nрегиональная) \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 3 4 \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 Вид документа (федеральный/\\nрегиональный, рек... Срок действия \n",
"5 NaN NaN \n",
"6 NaN NaN \n",
"7 NaN NaN \n",
"\n",
" 5 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Направление меры, \\nобласть воздействия \\n(под... \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 6 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Панируемый результат (комментарии) \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 7 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Фактический результат принятой меры по состоян... \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 8 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Оценка востребованности меры \\n(по шкале от 0 ... \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 9 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Причина низкой востребованности или невостребо... \n",
"5 NaN \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 10 \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 Стоимость меры в 2022 году, в млн. рублей \n",
"5 федеральный бюджет \n",
"6 NaN \n",
"7 NaN \n",
"\n",
" 11 12 \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN \n",
"5 бюджет субъекта Российской Федерации внебюджетные источники \n",
"6 NaN NaN \n",
"7 NaN NaN \n",
"\n",
" 13 14 15 \\\n",
"0 NaN NaN NaN \n",
"1 NaN Таблица 1 NaN \n",
"2 NaN NaN NaN \n",
"3 NaN NaN NaN \n",
"4 NaN Возможные риски \\n(при наличии) NaN \n",
"5 Льготы\\n(выпадающие доходы) NaN NaN \n",
"6 NaN NaN NaN \n",
"7 NaN NaN NaN \n",
"\n",
" 16 \n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"5 NaN \n",
"6 Общеэкономические \n",
"7 NaN "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_excel(\"Таблица.xlsx\", header=None)\n",
"df.head(8)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b51a5b3c",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 9,
"id": "8869b0ce",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Субъект Российской Федерации</th>\n",
" <th>Меры (краткое описание)</th>\n",
" <th>Принадлежность меры (федеральная/ региональная)</th>\n",
" <th>Вид документа (федеральный/ региональный, реквизиты)</th>\n",
" <th>Срок действия</th>\n",
" <th>Направление меры, область воздействия (поддержка МСП, отраслевая, общеэкономическая, импортозамещение, поддержка населения, сбалансированность бюджета, иное)</th>\n",
" <th>Панируемый результат (комментарии)</th>\n",
" <th>Фактический результат принятой меры по состоянию на отчетную дату 2022 года (комментарии)</th>\n",
" <th>Оценка востребованности меры (по шкале от 0 до 10)</th>\n",
" <th>Причина низкой востребованности или невостребованности меры</th>\n",
" <th>Стоимость меры в 2022 году, в млн. рублей федеральный бюджет</th>\n",
" <th>бюджет субъекта Российской Федерации</th>\n",
" <th>внебюджетные источники</th>\n",
" <th>Льготы (выпадающие доходы)</th>\n",
" <th>Возможные риски (при наличии)</th>\n",
" <th>src_filename</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Таблица</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Таблица</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Таблица</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>* Информация представляется: \\nпо состоянию на...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Таблица</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Таблица</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Субъект Российской Федерации Меры (краткое описание) \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 * Информация представляется: \\nпо состоянию на... NaN \n",
"4 NaN NaN \n",
"\n",
" Принадлежность меры (федеральная/ региональная) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" Вид документа (федеральный/ региональный, реквизиты) Срок действия \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN \n",
"\n",
" Направление меры, область воздействия (поддержка МСП, отраслевая, общеэкономическая, импортозамещение, поддержка населения, сбалансированность бюджета, иное) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" Панируемый результат (комментарии) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" Фактический результат принятой меры по состоянию на отчетную дату 2022 года (комментарии) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" Оценка востребованности меры (по шкале от 0 до 10) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" Причина низкой востребованности или невостребованности меры \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" Стоимость меры в 2022 году, в млн. рублей федеральный бюджет \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
"\n",
" бюджет субъекта Российской Федерации внебюджетные источники \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN \n",
"\n",
" Льготы (выпадающие доходы) Возможные риски (при наличии) src_filename \n",
"0 NaN NaN Таблица \n",
"1 NaN NaN Таблица \n",
"2 NaN NaN Таблица \n",
"3 NaN NaN Таблица \n",
"4 NaN NaN Таблица "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Тут в параметре table range указаны заголовки самого первого нужного столбца и последнего\n",
"# header_range Указаны границы строк с заголовками, в файле многострочный заголовок. Указаны две ячейки - верхняя и нижняя.\n",
"df = pp.parse_excels([\"Таблица.xlsx\"], \n",
" table_range=[\"Субъект Российской Федерации\", \"Возможные риски \\n(при наличии)\"], \n",
" header_range = [\"Субъект Российской Федерации\", \"Льготы\\n(выпадающие доходы)\"]);\n",
"df.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "0ebcde97",
"metadata": {},
"outputs": [],
"source": [
"#dfs = []\n",
"#for fname in os.listdir(\"./\"):\n",
"# print(fname)\n",
"# #dfs += [pd.read_excel(fname, header=None)]\n",
"#"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c183af2c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Приволжский ФО/Кировская область.xlsx\n",
"Приволжский ФО/Нижегородская область.xlsx\n",
"Приволжский ФО/Оренбургская область.xlsx\n",
"Приволжский ФО/Пензенская область.xlsx\n",
"Приволжский ФО/Пермский край.xlsx\n",
"Приволжский ФО/Республика Мордовия.xls\n",
"Приволжский ФО/Самарская область.xlsx\n",
"Приволжский ФО/Удмуртская Республика.xlsx\n",
"Приволжский ФО/Ульяновская обл.xlsx\n",
"СЗФО/Архангельская область.xlsx\n",
"СЗФО/Калининградская область.xlsx\n",
"СЗФО/Ленинградская область.xlsx\n",
"СЗФО/Мурманская область.xlsx\n",
"СЗФО/Ненецкий автономный окру.xlsx\n",
"СЗФО/Новгородская область.xlsx\n",
"СЗФО/Псковская область.xlsx\n",
"СЗФО/Республика Карелия.xlsx\n",
"СЗФО/Республика Коми.xlsx\n",
"СЗФО/Санкт-Петербург.xlsx\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ruslan/.local/lib/python3.7/site-packages/openpyxl/worksheet/header_footer.py:48: UserWarning: Cannot parse header or footer so it will be ignored\n",
" warn(\"\"\"Cannot parse header or footer so it will be ignored\"\"\")\n",
"/home/ruslan/.local/lib/python3.7/site-packages/openpyxl/worksheet/_reader.py:312: UserWarning: Data Validation extension is not supported and will be removed\n",
" warn(msg)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Сибирский ФО/Бурятия.xlsx\n",
"Сибирский ФО/Забайкальский край.xlsx\n",
"Сибирский ФО/Иркутская область.xlsx\n",
"Сибирский ФО/Кемеровская область.xlsx\n",
"Сибирский ФО/Красноярский край.xlsx\n",
"Сибирский ФО/Новосибирская область.xlsx\n",
"Сибирский ФО/Омская область.xlsx\n",
"Сибирский ФО/Республика Алтай.xlsx\n",
"Сибирский ФО/Томская область.xlsx\n",
"Сибирский ФО/Хакасия.xlsx\n",
"Уральский ФО/Курганская область.xlsx\n",
"Уральский ФО/Тюменская область.xlsx\n",
"Уральский ФО/Ханты Мансийский ао.xlsx\n",
"Уральский ФО/Челябинская область.xlsx\n",
"Уральский ФО/ЯНАО.xlsx\n",
"ЦФО/Белгородской область.xlsx\n",
"ЦФО/Брянская область.xlsx\n",
"ЦФО/Владимирская область.xlsx\n",
"ЦФО/Воронежская область.xlsx\n",
"ЦФО/Ивановская область.xlsx\n",
"ЦФО/Калусжская область.xlsx\n",
"ЦФО/Костромская область.xlsx\n",
"ЦФО/Курская область.xlsx\n",
"ЦФО/Липецкая область.xlsx\n",
"ЦФО/Московская область.xlsx\n",
"ЦФО/Орловская область.xlsx\n",
"ЦФО/Рязанская область.xlsx\n",
"ЦФО/Смоленская область.xlsx\n",
"ЦФО/Тамбовская область.xlsx\n",
"ЦФО/Тверская область.xlsx\n",
"ЦФО/Тульская область.xlsx\n",
"ЦФО/Ярославская область.xlsx\n",
"ЮФО/Астраханская область.xlsx\n",
"ЮФО/Волгоградская область.xlsx\n",
"ЮФО/Калмыкия.xlsx\n",
"ЮФО/Краснодарский край.xlsx\n",
"ЮФО/Крым.xlsx\n",
"ЮФО/Республика Адыгея.xlsx\n",
"ЮФО/Ростовская область.xlsx\n",
"ЮФО/Севастополь.xlsx\n"
]
}
],
"source": [
"#тут обрабатываются файлы из архива, полученные df записываются в list dfs\n",
"import py7zr\n",
"dfs = []\n",
"sevenz = py7zr.SevenZipFile('Консолидированные_после_правки.7z', mode='r');\n",
"for fname, data in sevenz.readall().items(): \n",
" print(fname)\n",
" tmp_df = pp.parse_excel(data.read(),\n",
" filter={1: 'istext', 2: 'istext'},\n",
" table_range=[\"Субъект Российской Федерации\", \"Возможные риски \\n(при наличии)\"], \n",
" header_range = [\"Субъект Российской Федерации\", \"Льготы\\n(выпадающие доходы)\"]);\n",
" if isinstance(tmp_df, pd.DataFrame):\n",
" tmp_df[\"src_filename\"] = fname\n",
" dfs += [{\n",
" \"name\": fname, \n",
" \"data\": tmp_df\n",
" }]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c553db7e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"entry: Приволжский ФО/Кировская область.xlsx okrug: Приволжский ФО region: Кировская область\n",
"entry: Приволжский ФО/Нижегородская область.xlsx okrug: Приволжский ФО region: Нижегородская область\n",
"entry: Приволжский ФО/Оренбургская область.xlsx okrug: Приволжский ФО region: Оренбургская область\n",
"entry: Приволжский ФО/Пензенская область.xlsx okrug: Приволжский ФО region: Пензенская область\n",
"entry: Приволжский ФО/Пермский край.xlsx okrug: Приволжский ФО region: Пермский край\n",
"entry: Приволжский ФО/Республика Мордовия.xls okrug: Приволжский ФО region: Республика Мордовия\n",
"entry: Приволжский ФО/Самарская область.xlsx okrug: Приволжский ФО region: Самарская область\n",
"entry: Приволжский ФО/Удмуртская Республика.xlsx okrug: Приволжский ФО region: Удмуртская Республика\n",
"entry: Приволжский ФО/Ульяновская обл.xlsx okrug: Приволжский ФО region: Ульяновская обл\n",
"entry: СЗФО/Архангельская область.xlsx okrug: СЗФО region: Архангельская область\n",
"entry: СЗФО/Калининградская область.xlsx okrug: СЗФО region: Калининградская область\n",
"entry: СЗФО/Ленинградская область.xlsx okrug: СЗФО region: Ленинградская область\n",
"entry: СЗФО/Мурманская область.xlsx okrug: СЗФО region: Мурманская область\n",
"entry: СЗФО/Ненецкий автономный окру.xlsx okrug: СЗФО region: Ненецкий автономный окру\n",
"entry: СЗФО/Новгородская область.xlsx okrug: СЗФО region: Новгородская область\n",
"entry: СЗФО/Псковская область.xlsx okrug: СЗФО region: Псковская область\n",
"entry: СЗФО/Республика Карелия.xlsx okrug: СЗФО region: Республика Карелия\n",
"entry: СЗФО/Республика Коми.xlsx okrug: СЗФО region: Республика Коми\n",
"entry: СЗФО/Санкт-Петербург.xlsx okrug: СЗФО region: Санкт-Петербург\n",
"entry: Сибирский ФО/Бурятия.xlsx okrug: Сибирский ФО region: Бурятия\n",
"entry: Сибирский ФО/Забайкальский край.xlsx okrug: Сибирский ФО region: Забайкальский край\n",
"entry: Сибирский ФО/Иркутская область.xlsx okrug: Сибирский ФО region: Иркутская область\n",
"entry: Сибирский ФО/Кемеровская область.xlsx okrug: Сибирский ФО region: Кемеровская область\n",
"entry: Сибирский ФО/Красноярский край.xlsx okrug: Сибирский ФО region: Красноярский край\n",
"entry: Сибирский ФО/Новосибирская область.xlsx okrug: Сибирский ФО region: Новосибирская область\n",
"entry: Сибирский ФО/Омская область.xlsx okrug: Сибирский ФО region: Омская область\n",
"entry: Сибирский ФО/Республика Алтай.xlsx okrug: Сибирский ФО region: Республика Алтай\n",
"entry: Сибирский ФО/Томская область.xlsx okrug: Сибирский ФО region: Томская область\n",
"entry: Сибирский ФО/Хакасия.xlsx okrug: Сибирский ФО region: Хакасия\n",
"entry: Уральский ФО/Курганская область.xlsx okrug: Уральский ФО region: Курганская область\n",
"entry: Уральский ФО/Тюменская область.xlsx okrug: Уральский ФО region: Тюменская область\n",
"entry: Уральский ФО/Ханты Мансийский ао.xlsx okrug: Уральский ФО region: Ханты Мансийский ао\n",
"entry: Уральский ФО/Челябинская область.xlsx okrug: Уральский ФО region: Челябинская область\n",
"entry: Уральский ФО/ЯНАО.xlsx okrug: Уральский ФО region: ЯНАО\n",
"entry: ЦФО/Белгородской область.xlsx okrug: ЦФО region: Белгородской область\n",
"entry: ЦФО/Брянская область.xlsx okrug: ЦФО region: Брянская область\n",
"entry: ЦФО/Владимирская область.xlsx okrug: ЦФО region: Владимирская область\n",
"entry: ЦФО/Воронежская область.xlsx okrug: ЦФО region: Воронежская область\n",
"entry: ЦФО/Ивановская область.xlsx okrug: ЦФО region: Ивановская область\n",
"entry: ЦФО/Калусжская область.xlsx okrug: ЦФО region: Калусжская область\n",
"entry: ЦФО/Костромская область.xlsx okrug: ЦФО region: Костромская область\n",
"entry: ЦФО/Курская область.xlsx okrug: ЦФО region: Курская область\n",
"entry: ЦФО/Липецкая область.xlsx okrug: ЦФО region: Липецкая область\n",
"entry: ЦФО/Московская область.xlsx okrug: ЦФО region: Московская область\n",
"entry: ЦФО/Орловская область.xlsx okrug: ЦФО region: Орловская область\n",
"entry: ЦФО/Рязанская область.xlsx okrug: ЦФО region: Рязанская область\n",
"entry: ЦФО/Смоленская область.xlsx okrug: ЦФО region: Смоленская область\n",
"entry: ЦФО/Тамбовская область.xlsx okrug: ЦФО region: Тамбовская область\n",
"entry: ЦФО/Тверская область.xlsx okrug: ЦФО region: Тверская область\n",
"entry: ЦФО/Тульская область.xlsx okrug: ЦФО region: Тульская область\n",
"entry: ЦФО/Ярославская область.xlsx okrug: ЦФО region: Ярославская область\n",
"entry: ЮФО/Астраханская область.xlsx okrug: ЮФО region: Астраханская область\n",
"entry: ЮФО/Волгоградская область.xlsx okrug: ЮФО region: Волгоградская область\n",
"entry: ЮФО/Калмыкия.xlsx okrug: ЮФО region: Калмыкия\n",
"entry: ЮФО/Краснодарский край.xlsx okrug: ЮФО region: Краснодарский край\n",
"entry: ЮФО/Крым.xlsx okrug: ЮФО region: Крым\n",
"entry: ЮФО/Республика Адыгея.xlsx okrug: ЮФО region: Республика Адыгея\n",
"entry: ЮФО/Ростовская область.xlsx okrug: ЮФО region: Ростовская область\n",
"entry: ЮФО/Севастополь.xlsx okrug: ЮФО region: Севастополь\n"
]
}
],
"source": [
"res = pd.DataFrame()\n",
"dfs2 = {}\n",
"\n",
"for i in dfs:\n",
" entry = i['name'].split(\"/\")\n",
" fed_okrug = entry[0]\n",
" region = entry[1].split(\".\")[0]\n",
" print(\"entry: %s okrug: %s region: %s\" % (i['name'], fed_okrug, region))\n",
" \n",
" #добавить dataframe с округом, если его еще нет в словаре\n",
" if fed_okrug not in dfs2.keys():\n",
" dfs2[fed_okrug] = pd.DataFrame()\n",
"\n",
" #дополнить dataframe строкой с названием региона, а потом данные региона\n",
" o = dfs2[fed_okrug] #для краткости новая переменная\n",
" \n",
" if isinstance(i['data'], pd.DataFrame):\n",
" res = res.append(i['data'], ignore_index=True)\n",
" o = o.append(i['data'], ignore_index=True)\n",
" dfs2[fed_okrug] = o #append возвращает новый датафрейм, поэтому надо сохранить его назад в словарь\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c3817e28",
"metadata": {},
"outputs": [],
"source": [
"for name in dfs2:\n",
" dfs2[name].to_excel(name + \".xlsx\", index=False)\n",
"\n",
"res.to_excel(\"okruga.xlsx\", index=False)\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "cde7e96c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1699, 16)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.shape"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8381b303",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "241de424",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "bd75ebfa",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "12359fe2-d250-404d-937e-5fdf505f9bb2",
"metadata": {},
"source": [
"# тут хорошо видно, что получилось\n",
"С этим уже можно работать"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "4ce21225",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Субъект Российской Федерации</th>\n",
" <th>Меры (краткое описание)</th>\n",
" <th>Принадлежность меры (федеральная/ региональная)</th>\n",
" <th>Вид документа (федеральный/ региональный, реквизиты)</th>\n",
" <th>Срок действия</th>\n",
" <th>Направление меры, область воздействия (поддержка МСП, отраслевая, общеэкономическая, импортозамещение, поддержка населения, сбалансированность бюджета, иное)</th>\n",
" <th>Панируемый результат (комментарии)</th>\n",
" <th>Фактический результат принятой меры по состоянию на отчетную дату 2022 года (комментарии)</th>\n",
" <th>Оценка востребованности меры (по шкале от 0 до 10)</th>\n",
" <th>Причина низкой востребованности или невостребованности меры</th>\n",
" <th>Стоимость меры в 2022 году, в млн. рублей федеральный бюджет</th>\n",
" <th>бюджет субъекта Российской Федерации</th>\n",
" <th>внебюджетные источники</th>\n",
" <th>Льготы (выпадающие доходы)</th>\n",
" <th>Возможные риски (при наличии)</th>\n",
" <th>src_filename</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Республика Коми</td>\n",
" <td>Сохранение на 2023 год пониженных налоговых ст...</td>\n",
" <td>региональная</td>\n",
" <td>Закон РК от 08.05.2020 \\n № 12-РЗ</td>\n",
" <td>до 31.12.2023</td>\n",
" <td>поддержка МСП</td>\n",
" <td>сохранение численности МСП и занятости в сфере...</td>\n",
" <td>нет данных</td>\n",
" <td>10</td>\n",
" <td>-</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2491.9</td>\n",
" <td>Нет</td>\n",
" <td>СЗФО/Республика Коми.xlsx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Республика Коми</td>\n",
" <td>Поддержка владельцев рекламных конструкций на ...</td>\n",
" <td>региональная</td>\n",
" <td>Постановления Правительства РК от 21.04.2022 №...</td>\n",
" <td>с 01.03.2022 по 31.08.2022</td>\n",
" <td>поддержка владельцев рекламных конструкций Рес...</td>\n",
" <td>сохранение количества владельцев рекламных ко...</td>\n",
" <td>сохранено количество владельцев рекламных кон...</td>\n",
" <td>10</td>\n",
" <td>-</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5.57</td>\n",
" <td>Нет</td>\n",
" <td>СЗФО/Республика Коми.xlsx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Республика Коми</td>\n",
" <td>Снижение налоговой нагрузки для ИТ компаний, п...</td>\n",
" <td>региональная</td>\n",
" <td>Закон РК от 04.07.2022 № 54-РЗ «О внесении изм...</td>\n",
" <td>до 31.12.2024</td>\n",
" <td>поддержка организаций, осуществляющих деятельн...</td>\n",
" <td>22 организации получат данную меру поддержки</td>\n",
" <td>оценка фактического результата меры поддержки ...</td>\n",
" <td>10</td>\n",
" <td>-</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>20.7</td>\n",
" <td>Нет</td>\n",
" <td>СЗФО/Республика Коми.xlsx</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Республика Коми</td>\n",
" <td>Предоставление земельных участков, находящихся...</td>\n",
" <td>региональная</td>\n",
" <td>Постановление Правительства РК от 03.08.2022 №388</td>\n",
" <td>2022-12-31 00:00:00</td>\n",
" <td>импортозамещение</td>\n",
" <td>-</td>\n",
" <td>возможность предоставления земельных участков ...</td>\n",
" <td>0</td>\n",
" <td>Отсутствие заинтересованных лиц в строительств...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Нет</td>\n",
" <td>СЗФО/Республика Коми.xlsx</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Субъект Российской Федерации \\\n",
"6 Республика Коми \n",
"7 Республика Коми \n",
"8 Республика Коми \n",
"9 Республика Коми \n",
"\n",
" Меры (краткое описание) \\\n",
"6 Сохранение на 2023 год пониженных налоговых ст... \n",
"7 Поддержка владельцев рекламных конструкций на ... \n",
"8 Снижение налоговой нагрузки для ИТ компаний, п... \n",
"9 Предоставление земельных участков, находящихся... \n",
"\n",
" Принадлежность меры (федеральная/ региональная) \\\n",
"6 региональная \n",
"7 региональная \n",
"8 региональная \n",
"9 региональная \n",
"\n",
" Вид документа (федеральный/ региональный, реквизиты) \\\n",
"6 Закон РК от 08.05.2020 \\n № 12-РЗ \n",
"7 Постановления Правительства РК от 21.04.2022 №... \n",
"8 Закон РК от 04.07.2022 № 54-РЗ «О внесении изм... \n",
"9 Постановление Правительства РК от 03.08.2022 №388 \n",
"\n",
" Срок действия \\\n",
"6 до 31.12.2023 \n",
"7 с 01.03.2022 по 31.08.2022 \n",
"8 до 31.12.2024 \n",
"9 2022-12-31 00:00:00 \n",
"\n",
" Направление меры, область воздействия (поддержка МСП, отраслевая, общеэкономическая, импортозамещение, поддержка населения, сбалансированность бюджета, иное) \\\n",
"6 поддержка МСП \n",
"7 поддержка владельцев рекламных конструкций Рес... \n",
"8 поддержка организаций, осуществляющих деятельн... \n",
"9 импортозамещение \n",
"\n",
" Панируемый результат (комментарии) \\\n",
"6 сохранение численности МСП и занятости в сфере... \n",
"7 сохранение количества владельцев рекламных ко... \n",
"8 22 организации получат данную меру поддержки \n",
"9 - \n",
"\n",
" Фактический результат принятой меры по состоянию на отчетную дату 2022 года (комментарии) \\\n",
"6 нет данных \n",
"7 сохранено количество владельцев рекламных кон... \n",
"8 оценка фактического результата меры поддержки ... \n",
"9 возможность предоставления земельных участков ... \n",
"\n",
" Оценка востребованности меры (по шкале от 0 до 10) \\\n",
"6 10 \n",
"7 10 \n",
"8 10 \n",
"9 0 \n",
"\n",
" Причина низкой востребованности или невостребованности меры \\\n",
"6 - \n",
"7 - \n",
"8 - \n",
"9 Отсутствие заинтересованных лиц в строительств... \n",
"\n",
" Стоимость меры в 2022 году, в млн. рублей федеральный бюджет \\\n",
"6 0 \n",
"7 0 \n",
"8 0 \n",
"9 0 \n",
"\n",
" бюджет субъекта Российской Федерации внебюджетные источники \\\n",
"6 0 0 \n",
"7 0 0 \n",
"8 0 0 \n",
"9 0 0 \n",
"\n",
" Льготы (выпадающие доходы) Возможные риски (при наличии) \\\n",
"6 2491.9 Нет \n",
"7 5.57 Нет \n",
"8 20.7 Нет \n",
"9 0 Нет \n",
"\n",
" src_filename \n",
"6 СЗФО/Республика Коми.xlsx \n",
"7 СЗФО/Республика Коми.xlsx \n",
"8 СЗФО/Республика Коми.xlsx \n",
"9 СЗФО/Республика Коми.xlsx "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test = dfs[17]['data'].head(4)\n",
"test\n"
]
},
{
"cell_type": "markdown",
"id": "78da7714-92b0-4a62-8a03-9fa24d55bf64",
"metadata": {},
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment