Comments (7)
parser-rosstat-kep/src/kep/parsing_definition/checkpoints.py
Lines 3 to 32 in 3ff0686
from parser-rosstat-kep.
для проверки что должны делать? Я так понимаю, что функция validate должна кидать исключение, если обнаружены дополнительные столбцы в данных, которых нет в чекпойнтах, или, наоборот, если какие-то чекпойнты не использованы. Так?
Либо же должны быть отдельные функции, которые возвращают список различий, к примеру?
Скорее второе.
-
Нужна функция для проверки "Есть ли в фреймах переменные (столбцы), для которые нет проверочного значения" - это проверка. Это может быть warning или exception.
-
Справочная функция - есть ли среди проверочных значений те, которые не понадобились для проверки? Это информация о том, что проверочные значения, возможно, устаревают, из-за пересмотра состава переменных. Это warning.
-
В целом нужен набор правил, которые мы считаем "валидацией целостности" набора данных. @0nkery, можете предложить?
from parser-rosstat-kep.
По №2 мы всегда используем все контрольные точки, дополнительная проверка не требуется.
flags = [is_found(df, c) for c in checkpoints]
from parser-rosstat-kep.
Текущая цель валидации:
мы хотим добиться, чтобы для каждой переменной в каждой частоте была непустая контрольная точка
from parser-rosstat-kep.
Правила контроля целостности набора данных (0.0.1)
Компоненты
- определение парсинга
Specification
- фреймы - результаты парсинга
- контрольные точки
CHECKPOINTS
- способ задать контрольные точки
- механизм сравнения контрольных точек и фреймов
Валидация (контрольные точки)
Сейчас:
Все контрольные точки есть в фреймах.
Требуется:
Для каждой переменной в каждой частоте есть одна непустая контрольная точка.
Нет неиспользуемых контрольных точек.
Проблемы
-
мы не знаем все ли переменные во фреймах охвачены контрольными точками
-
нас удовлетворяют пустые значения в контрольной точке и в фрейме (нужны контрольные токи вне 1999 года для некоторых переменных)
-
можно метаться туда-суда по поводу компоненты "как задавать чекпойнты", исходя из соображений удобства и соответствия исходнику. тут может быть много вариантов, и сейчас не идеальный.
Что еще можно проверять
- переменная не должна сильно вылетать за пределы своих значений
- некоторые переменные не могут быть равны 0 (все значения)
- может быть еще что-то?
from parser-rosstat-kep.
- Проверить, есть ли во фреймах переменные, отсутствующие в контрольных точках. Функция бросает исключение со списком переменных, которые нужно покрыть контрольными точками.
- Контрольные точки за другие годы помимо 1999:
- Для пустых значений (
INDPRO_yoy
,PPI_rog
) нужны дополнительные строки с контрольными точками, привязанные к конкретному году и механизм объединения получившихся словарей для валидации датафреймов. - Нужно так же учитывать, что контрольные точки могут не подходить для некоторых релизов данных. Пример: учет показателя ведется с 2016 года - релизы данных для более ранних годов не имеют этого показателя, что нормально. Решение: игнорировать контрольные точки "из будущего".
Проверки, требующие более тщательного проектирования: - Проверка, что переменная находится в пределах своих значений (не изменяется слишком сильно).
- Проверка на наличие нулевых значений (нужно как-то отличать отсутствующие значения от нулевых (неверных)).
from parser-rosstat-kep.
Вариант решения задачи валидации переменных в релизах данных по нескольким контрольным точкам.
Если брать контрольную точку ближе по времени, ее значение может меняться через месяц или квартал ( было / не было данных + уточнили данные ).
Можно задать базовые контрольные точки, общие для всех релизов данных. В каждом отдельном релизе данных, при необходимости, можно указывать "переопределения" отдельных контрольных точек, которые объединяются с базовыми (перезаписывая отдельные контрольные точки). Полученная структура данных уже используется для валидации датафреймов.
from parser-rosstat-kep.
Related Issues (20)
- add Vintage.upload() method HOT 1
- processed/latest folder needs better handling
- certain variables not found in Vinatage.validate() HOT 2
- Missing values should not be False at dataframe construction HOT 5
- shorter decimal representation in CSV file HOT 2
- replace Table class with Table2
- add coverable badge
- adapt code to create html with headers and charts HOT 8
- code review for `dev-sceleton` branch
- speed up manage.parse() HOT 3
- create parsing definition for 'profit' variable
- start of minimal example in julia HOT 1
- start of minimal example in go
- clean notebooks folder and dev_scrap branch
- duplicate code: get_year() vs clean year()
- why smaller code has longer running time?
- trace where duplicate values are created
- how to control warnings issue?
- industial goods production
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from parser-rosstat-kep.