2012-2017年俄罗斯公司报告
boo的Python项目详细描述
boo
boo
是一个python客户端,可以从rosstat网站下载和转换年度公司报告。
安装
pip install boo
对于开发版本:
pip install git+https://github.com/ru-corporate/boo.git@master
用法
frombooimportdownload,build,read_dataframedownload(2012)build(2012)df=read_dataframe(2012)print(df.head())
文件
csv文件位于~/.boo
文件夹中。boo.locate(year)
将精确显示它们的位置。
File name | Description | Column count | Created by |
---|---|---|---|
^{ | Original CSV file from Rosstat website. No header row. | 266 | ^{ |
^{ | CSV file with column names in header row. | 58 | ^{ |
boo.build()
获取raw<year>.csv
并创建本地csv文件<year>.csv
列名。<year>.csv
可作为pandas数据帧导入。read_intermediate_df(year)
将返回<year>.csv
内容。
df = read_dataframe(year)
返回引用(“规范”)数据集。此函数转换<year>.csv
中的某些列(例如,从inn
中提取region
),并应用筛选器移除错误行。
变量
rosstat数据集包含资产负债表、损益表和现金流量表变量。每个变量都是dataframe中的一列。
>>>{c:boo.whatis(c)forcindf.columnsif"_lag"noinc})Out[126]:{'title':'Короткое название организации','org':'Тип юридического лица (часть наименования организации)','okpo':None,'okopf':None,'okfs':None,'okved':None,'unit':None,'ok1':'Код ОКВЭД первого уровня','ok2':'Код ОКВЭД второго уровня','ok3':'Код ОКВЭД третьего уровня','region':'Код региона по ИНН','of':'Основные средства','ta_fix':'Итого внеоборотных активов','cash':'Денежные средства и денежные эквиваленты','ta_nonfix':'Итого оборотных активов','ta':'БАЛАНС (актив)','tp_capital':'Итого капитал','debt_long':'Долгосрочные заемные средства','tp_long':'Итого долгосрочных обязательств','debt_short':'Краткосрочные заемные обязательства','tp_short':'Итого краткосрочных обязательств','tp':'БАЛАНС (пассив)','sales':'Выручка','profit_oper':'Прибыль (убыток) от продаж','exp_interest':'Проценты к уплате','profit_before_tax':'Прибыль (убыток) до налогообложения','profit_after_tax':'Чистая прибыль (убыток)','cf_oper_in':'Поступления - всего','cf_oper_in_sales':'От продажи продукции, товаров, работ и услуг','cf_oper_out':'Платежи - всего','paid_to_supplier':'Поставщикам (подрядчикам) за сырье, материалы, работы, услуги','paid_to_worker':'В связи с оплатой труда работников','paid_interest':'Проценты по долговым обязательствам','paid_profit_tax':'Налога на прибыль организаций','paid_other_costs':'Прочие платежи','cf_oper':'Сальдо денежных потоков от текущих операций','cf_inv_in':'Поступления - всего','cf_inv_out':'Платежи - всего','paid_fa_investment':'В связи с приобретением, созданием, модернизацией, реконструкцией и подготовкой к использованию внеоборотны активов','cf_inv':'Сальдо денежных потоков от инвестиционных операций','cf_fin_in':'Поступления - всего','cf_fin_out':'Платежи - всего','cf_fin':'Сальдо денежных потоков от финансовых операций','cf':'Сальдо денежных потоков за отчетный период'}
提示
用户
- csv文件很大,从2012年开始试验。
- 使用上面的链接google colab远程运行包。
- 使用
read_dataframe(year)
读取规范csv文件。
显影器
boo.path.default_data_folder
显示csv文件在计算机上的位置。boo.columns
控制csv列的选择和命名。boo.dataframe.canonic
生成规范的csv。巧合的是,outputhas的列数与<year>.csv
相同,但由于添加了一些列,删除了一些列,这些列略有不同。boo.year.TIMESTAMPS
帮助查找正确的url,这些url随rosstat网站更新而变化。- 9-10月发布的新年度数据集。
脚本
boo.path.default_data_folder
显示csv文件在计算机上的位置。boo.columns
控制csv列的选择和命名。boo.dataframe.canonic
生成规范的csv。巧合的是,outputhas的列数与<year>.csv
相同,但由于添加了一些列,删除了一些列,这些列略有不同。boo.year.TIMESTAMPS
帮助查找正确的url,这些url随rosstat网站更新而变化。rosstat发布没有列标题的csv文件。 在准备可读的csv文件时,我们为列指定一个名称 与感兴趣的变量一起切掉其余的列。
这样我们得到一个更小的文件(大约50%的大小)。我们可以阅读 并使用pandas或r操作此文件中的数据。
为了便于说明,下面的批处理脚本使用列名创建2012.csv
文件。
seturl=http://www.gks.ru/opendata/storage/7708234640-bdboo2012/data-20190329t000000-structure-20121231t000000.csv setindex=1,2,3,4,5,6,7,8,17,18,27,28,37,38,41,42,43,44,57,58,59,60,67,68,69,70,79,80,81,82,83,84,93,94,99,100,105,106,117,118,204,205,209,210,211,212,213,214,215,216,222,223,228,229,235,240,241,266 setcolnames=name,okpo,okopf,okfs,okved,inn,unit,report_type,of,of_lag,ta_fix,ta_fix_lag,cash,cash_lag,ta_nonfix,ta_nonfix_lag,ta,ta_lag,tp_capital,tp_capital_lag,debt_long,debt_long_lag,tp_long,tp_long_lag,debt_short,debt_short_lag,tp_short,tp_short_lag,tp,tp_lag,sales,sales_lag,profit_oper,profit_oper_lag,exp_interest,exp_interest_lag,profit_before_tax,profit_before_tax_lag,profit_after_tax,profit_after_tax_lag,cf_oper_in,cf_oper_in_sales,cf_oper_out,paid_to_supplier,paid_to_worker,paid_interest,paid_profit_tax,paid_other_costs,cf_oper,cf_inv_in,cf_inv_out,paid_fa_investment,cf_inv,cf_fin_in,cf_fin_out,cf_fin,cf,date_published curl %url%> raw2012.csv echo%colnames%> 2012.csv cat raw2012.csv | csvcut -d; -e ansi -c%index%| iconv -f cp1251 -t utf-8 >> 2012.csv csvclean 2012.csv
注意:这是一个windows批处理文件,但它依赖于gnu实用程序(例如通过cygwin、mingw或GOW)和csvkit。类似的脚本可以适用于纯linux/bash。{A7}允许Python和脚本代码的混合,类似于F字符串。
批处理文件结果类似于运行:
frombooimportdownload,builddownload(2012)build(2012)
限制
- 无时间序列:我们可以按年访问所有数据的横截面,但不能按每个公司访问数年的数据。
- 无数据库:我们将文件存储为纯csv,而不是在数据库中。
贡献者
包由Evgeniy Pogrebnyak维护。
特别感谢Daniil Chizhevskij与pypi的合作。没有他的支持是不可能的。