Size: a a a

Python для анализа данных

2019 September 06

ФК

Фархад Керимли... in Python для анализа данных
отдельно кстати взрывает мозг, что если фрейм был сохранен в файл а потом считан, столбец со списком превращается в столбец со строкой)
источник

АМ

Алексей Макаров... in Python для анализа данных
Фархад Керимли
отдельно кстати взрывает мозг, что если фрейм был сохранен в файл а потом считан, столбец со списком превращается в столбец со строкой)
Ну так тип колонки ведь object
источник

АМ

Алексей Макаров... in Python для анализа данных
Чтобы сохранять список можно использовать to_hdf()
источник

ФК

Фархад Керимли... in Python для анализа данных
Алексей Макаров
Чтобы сохранять список можно использовать to_hdf()
👍
источник

DS

Dmitriy Shashkin in Python для анализа данных
to_feather вроде более модно)
источник
2019 September 07

VN

Vlad Nykytenko in Python для анализа данных
всем привет, а кто-то пользовался уже пакетом voila чтобы ноутбуки в веб версию конвертировать, можно ли как-то будет у себя захостить локально?
источник
2019 September 09

АГ

Артем Гилетич... in Python для анализа данных
Добрый день всем!
Есть больше миллиона json-строк с высокой степенью вложенности. Нужен максимально быстрый способ преобразовать их в python объекты. Подскажите, пожалуйста, в какую сторону копать?
Спасибо!
источник

dd

dgj dfsh in Python для анализа данных
Артем Гилетич
Добрый день всем!
Есть больше миллиона json-строк с высокой степенью вложенности. Нужен максимально быстрый способ преобразовать их в python объекты. Подскажите, пожалуйста, в какую сторону копать?
Спасибо!
Начните, например, с этого https://habr.com/ru/post/465531/
источник
2019 September 10

PN

Pavel Niki in Python для анализа данных
Артем Гилетич
Добрый день всем!
Есть больше миллиона json-строк с высокой степенью вложенности. Нужен максимально быстрый способ преобразовать их в python объекты. Подскажите, пожалуйста, в какую сторону копать?
Спасибо!
Посмотрите функцию json_normalize() через аргумеет max_level можно очень многое сделать в pandas 0.25
источник

АГ

Артем Гилетич... in Python для анализа данных
dgj dfsh, Pavel Niki - спасибо большое за ответы!
>> Распаковка вложенных списков неопределенной глубины
Крутая статья, поиграюсь, посмотрю производительность. Очень интересно.
>> json_normalize() - тоже очень юзабельная фича.

Однако (как и со статьей на Хабре) - эти методы применяются к десериализованному джейсону. А критический затык по производительности происходит на этапе десериализации из строки (json.loads или одноименный метод из более быстрых аналогов ujson, rapidjson, orjson и пр., которые дают незначительный прирост в скорости).

Нашел, в итоге, модуль ijson (с сишным бэкэндом jajl, либо python-реализация в связке с pypy), который позволяет читать сериализованный json с помощью генераторов, собирая только необходимые поля. По некоторым статьям, прирост производительности в сравнении с json.loads и отбрасыванием ненужных полей -> в 100-600 раз. На своих данных ещё не успел потестить. Но выглядит очень даже ничего.

Есть еще идеи? :)
источник

dd

dgj dfsh in Python для анализа данных
Артем Гилетич
dgj dfsh, Pavel Niki - спасибо большое за ответы!
>> Распаковка вложенных списков неопределенной глубины
Крутая статья, поиграюсь, посмотрю производительность. Очень интересно.
>> json_normalize() - тоже очень юзабельная фича.

Однако (как и со статьей на Хабре) - эти методы применяются к десериализованному джейсону. А критический затык по производительности происходит на этапе десериализации из строки (json.loads или одноименный метод из более быстрых аналогов ujson, rapidjson, orjson и пр., которые дают незначительный прирост в скорости).

Нашел, в итоге, модуль ijson (с сишным бэкэндом jajl, либо python-реализация в связке с pypy), который позволяет читать сериализованный json с помощью генераторов, собирая только необходимые поля. По некоторым статьям, прирост производительности в сравнении с json.loads и отбрасыванием ненужных полей -> в 100-600 раз. На своих данных ещё не успел потестить. Но выглядит очень даже ничего.

Есть еще идеи? :)
Как-то разбить и распараллелить десериализацию
источник

dd

dgj dfsh in Python для анализа данных
Не накапливать такое кол-во строк, а почаще их обрабатывать
источник

dd

dgj dfsh in Python для анализа данных
Можете еще написать какие есть ограничения или какую доп. инфу
источник

АГ

Артем Гилетич... in Python для анализа данных
dgj dfsh
Можете еще написать какие есть ограничения или какую доп. инфу
Проблема в том, что все эти json-строки хранятся в старом sql server. Так что возможности парсить на стороне БД тоже нет. И каждый день генерится примерно 10-20 ГБ данных.
источник

dd

dgj dfsh in Python для анализа данных
100 млн строк - это и есть эти 10-20 Гб?
источник

dd

dgj dfsh in Python для анализа данных
Каждая строка - это отдельная запись в БД?
источник

dd

dgj dfsh in Python для анализа данных
Почему нельзя не накапливать, а периодически в течение дня обрабатывать их?
источник

АГ

Артем Гилетич... in Python для анализа данных
dgj dfsh
Почему нельзя не накапливать, а периодически в течение дня обрабатывать их?
Потому что данные за несколько лет, увы, уже накопились в таком формате.
источник

АГ

Артем Гилетич... in Python для анализа данных
dgj dfsh
Каждая строка - это отдельная запись в БД?
Нет, json только один из столбцов, необходимых для связывания с другими таблицами. Увы, повлиять на способ хранения данных другого ПО повлиять нельзя 😟
источник

dd

dgj dfsh in Python для анализа данных
Сколько весят данные в одной строке в столбце с json?
источник