В iPython мои (черновики) упражнения с Python, в разделе "Mining" собраны материалы по R, Rapid Miner, Weka, Gate..., в "Projects" фрагменты старых и заготовки для новых исследований... записано для себя, открыто для всех...
суббота, 28 февраля 2015 г.
Pandas и "Statistical Data Modeling" и примеры Latex записи (часть 4-1)
пятница, 27 февраля 2015 г.
Третья часть курса Pandas "Plotting and Visualization" (часть 3)
Здесь примеры только с matplotlib. Зато весь классический набор для начинающих: графики серий, диаграммы столбцов, гистограммы, боксы, диаграммы рассеяния... и все это в разных вариантах (например, несколько диаграмм на одном поле и на разных...). Получается бедновато. Но в конце есть ссылки на GofG и примеры Trellis Plots
среда, 25 февраля 2015 г.
Копипаст второй части о подготовке данных "Data Wrangling with Pandas" (часть 2)
Вот заголовки и ключевые слова для поиска: Date/Time, log.histogram, datetime.strptime(segments.st_time.ix[0], '%m/%d/%y %H:%M') Merging, Concatenation( binding or stacking), Reshaping DataFrame objects, Pivoting, Value replacement Inidcator variables (design matrix), Discretization Permutation and sampling, Data aggregation and GroupBy operations, split-apply-combine operation, Apply
вторник, 24 февраля 2015 г.
Видео и примеры к "Introduction to Pandas" (часть 1)
Здесь сотня примеров работы с сериями и фреймами, иерархическая индексация, сортировка, ранжирование, пропуски, считывание\запись из\в файл, суммы, средние, корреляции. Для примеров использовались "таблицы бактерий" и "бейсбола"
воскресенье, 22 февраля 2015 г.
Здесь примеры кода для методов, которые я использую для чистки строк и строк - элементов списка
Вот большая часть примеров: filter(None, infi.split(' ')) map(str.strip, finfi) ' '.join(mystring.split()) mystring.replace('mess','',[n,m]) str.translate(table[, deletechars]) Это только те, которые я использовал. Но есть еще много других возможностей. Их надо искать по ссылкам на документацию... Часть сылок не наверху (как обычно), а ниже в тексте...
суббота, 21 февраля 2015 г.
Переопределние класса AEBto3tables для таблиц января 2015 и запись результатов
Как и год назад, в Январе таблицы не включают столбцы с предыдущими месяцами. Но, кроме того, в таблицах 2 и 3 убрали столбцы. Так что пришлось выполнить очередную перенастройку.
Переопределние класса AEBto3tables для таблиц января (они отличаются от всех остальных). Потом записываем только три файла в старые папки *aug2.
В Январе таблицы не включают столбцы с предыдущими месяцами. Пробуем просто поменять параметры в настройках метощдов класса
пятница, 20 февраля 2015 г.
Вторая таблица в AEBto3tables для августа с filter(None, line.split(' '))
Используем наше "изобретение" filter(None, line.split(' ')) для того, чтобы парсить таблицы файлов типа "август"
Запускаем из IPyNotebook парсер AEBto3tables, настраиваемся по февральскому файлу и... умнеем
Здесь изобретаем вот такой велосипед filter(None, line.split(' ')), редактируем методы класса, и парсим в новые подпапки (1feb). Новый "ввелосиед" оказался почти идеальным. В конце поста это видно по размерам файлов в папках.
четверг, 19 февраля 2015 г.
Методика перенастройки и отладки pdf парсера AEBto3tables с использован ем IPyNotebook
Формат таблиц в pdf файлах за год несколько раз менялся. После того, как я понял, что надо каждый раз перестраивать парсеры строк, то понял, что даже, если у меня будет десяток разных парсеров для этого сайта, то я определенно в них запутаюсь. Надо записывать все в одном месте - и результаты, и код, и процесс отладки. Здесь я записал процесс перенастройки по файлу августа 2014 и научился наследовать собственный класс.
вторник, 17 февраля 2015 г.
Как парсить текстовые строки переменной длины (после отравления блинами)?
Таблица продаж автомобилей после конвертации из PDF файла представляет собой набор строк. Но каждая строка может начинаться с одного или нескольких слов названия марки (фирмы). Получается, что в строках может быть от 7 до 11 слов. Как загнать их в 7 столбцов? Задачка детская, надо просто знать мат.часть, вот ответ iii.partition(' ')[2].split(), len(iii.partition(' ')[2].split()) Но я никак не мог догадаться и перерепробовал RE... Здесь примеры моих тупых поисков и текстовый файл
пятница, 13 февраля 2015 г.
Фрагменты кода для парсере PDF (AEBto3tables)
Здесь я начал раздумывать о том, как сделать парсер pdf и попробовал осмыслить последовательность обработки папки с pdf файлами. Собрал сюда фрагманты работающего кода с os.listdir(path) subprocess.Popen(...) pdftotext , потом фильтры для трех таблиц (код фильтров надо переделать, не учел что в названии может быть несколько слов), потом великие открытия с sys.path.append(...) и прехватом сообщений дебаггера из консоли прямо в notebook...
четверг, 12 февраля 2015 г.
Читам 5 отличных статей про subprocess Python и смотрим три видеоролика
Нужно было выполнить рутинную работу по конвертации pdf файлов и последующео парсинга текстовых строк в таблицы. Мне не хотелось плодить временные файлы для каждого этапа конвертации, потому я сначала посмотрел видео и с большой неохотой прочитал таки малопонятную документацию..., зато потом с удовольствием прочитал все
среда, 11 февраля 2015 г.
Первый рабочий релиз carmailPrice с результатами парсинга
Спайдер выскреб заготовленые страницы в моем ноутбуке и поместил все в таблицу (3727 строки). Кто бы мог подумать, что у нас продавалось такое количество модификаций автомобилей. Здесь плохоочищеный, но работающий код, и ссылки на итоговые таблицы результатов.
Найти все имена файлов в папке при помощи os.listdir(path)
Взять все (однотипные) файлы в папке, да и конвертировать. Как их перебирать? Можно все (вместе с содержимым файлов) загнать в словарь... А молжно проще... Здесь фрагменты кода с os.listdir(path) и итерации по файлам в папке
вторник, 10 февраля 2015 г.
Слишком "подробно" заданы пути в XPath запросах carmailPrice? Нет! Надо было обработать ошибки
Когда спайдер выдает ошибки при парсинге 2/3 страниц, то начинаются упреки и подозрения. Мне удалось "поймать" паука-халтурщика на странице Daewoo, здесь я сравниваю его поведение на страницах BMW и Daewoo. Трачу на это целый день. Оказалось, что я просто ошибся с "диагнозом". Не на всех страницах модификаций есть ссылки на цены. Спайдер выдавал ошибки, но продолжал работу. Оказалось, что при этом он может пропучкать сразу десятки страниц. Но целый день я искал отличия в коде страниц, здесь фрагменты кода и запросы XPath
воскресенье, 8 февраля 2015 г.
Инсталляция IDE cloud9 в Kali - удачная проба "Git clone" и "npm install"
Мне срочно нужен был редактор для изучения nodejs. Решил, что написанный на nodejs редактор - это двойная выгода. Здесь просто лог моих действий. Все делал по инструкции и скопировал выходной поток консоли. Дабы был пример "правильной" работы npm
Бесплатные редакторы для Nodejs и лог неудачной установки Scripted в Kali (Debian)
Неудачной потому, что это мои первые шаги с nodejs. Поэтому ошибки здесь (полагаю) детские. О них есть записи в логах. В следующем посте я покажу лог удачной установки другого редактора, точнее IDE cloud9. Буду пока пользоваться им. Сегодня мне нужен любой редактор с подсказкам, чтобы повторять примеры из учебного курса.
суббота, 7 февраля 2015 г.
Apt-get -опять "сломана" база приложений, dpkg - снова нужно обновить flashplugin-nonfree...
Я нахожу свой предыдущий пост на эту тему и повторяю здесь те же шаги. Пора, однако, разобраться почему у меня постянно вылетает Apt-get. Потому здесь логи. Но надо пауков дописывать срочно. Так что решение отложим "на потом".
Installing Node.Js and npm in kali linux - со второй попытки успешно
Поначалу попытка установить пакеты "между делом" не удалась. Здесь логи и хорошие ссылки. Есть даже скрипт установки. И есть видео от октября 2014г. Его то я и использовал. И между делом открыл полезный интерфейс apt-get install gdebi
пятница, 6 февраля 2015 г.
Как вырезать таблицы из текстового файла, который получился после pdftotext
Открываем текстовый файл и формируем списки (списков) только из отфильтрованных строк (string-methods). Потом эти lists записываем в csv файл. Для записи в файл используем два вложенных цикла по строкам из столбцам... см. In [71] Поскольку эксперименты с примерами из библиотеки csv не удались. Когда буду собирать рабочий код надо не забыть убрать лишние символы (звездочки и скобку) в названиях. В конце тот самый текстовый файл, из которого все напарсено. А перед ним варианты готовых csv файлов.
четверг, 5 февраля 2015 г.
Справка, ссылки и первая проба конвертера pdf2htmlEX
Здесь я устанавливаю запускаю статический экзешник pdf2htmlEX и получаю красивый html файл, но опять каждая ячейка таблицы - один div и никакой цветовой иерархии штано дивов. Получается, что проще использовать pdftotext (он у меня в наборе Program Files/Xpdf).
In one word, pdf2htmlEX is a tool that Convert PDF to HTML without losing text or format, bases on poppler, FontForge , and jQuery.
Документация к Xpdf (pdffonts.txt pdfinfo.txt и все остальные)
В своих изыскания философского камня для конвертации pdf я сначала нашел xpdf, потом Poppler, потом pdf2htmlEX. В последней используется Poppler, сам Poppler is a PDF rendering library based on the xpdf-3.0 code base...
И все конвертеры в html решают задачи позициирования блоков b сохранения замены\шрифтов, дабы сконвертированная страничка выглядела прилично. И мне оно надо? Нет!
Мне нужно парсить страничку, а не публиковать. Так что изучать надо pdftotext. Потому здесь я распечатал еще pdftotext.txt xpdfrc.txt - это справка по конфигурационному файлу, ... и даже xpdf.txt (xpdf не поддерживается в Windows)
вторник, 3 февраля 2015 г.
Ссылки на конвертеры pdf файлов в текст и html
Как парсить pdf файлы? Здесь ссылки на десктопные конвертеры и библиотеки. Есть даже список List of PDF software, но главные надежды я возлагаю на Xpdf, только что скачал и буду пробовать под Windows. Здесь же и справочники pdftotext.txt pdftohtml.txt
Здесь и первые эксперименты с pdftotext и pdftohtml. И чудный html файл после pdftohtml.