Добрый день, уважаемые читатели. В моей голове давно была идея реализовать программный интерфейс, который позволит совершать анализ данных групп ВКонтакте. Проблема заключается в следующем: мы можем получить статистику своей группы только в виде диаграмм на самом сайте ВКонтакте, либо в виде файла с различными показателями. Структура этого файла не слишком сложная, однако чтобы в ней разобраться также нужно время.
Поэтому было реализован маленький пакет VKVisualization на языке Python, который вы можете использовать. Скачайте его с репозитория GitHub и инициализируйте путём запуске setup.py
.
Подпишись на группу Вконтакте и Телеграм-канал. Там еще больше полезного контента для программистов.
А на YouTube-канале ты найдешь обучающие видео по программированию. Подписывайся!
DataSet class
Главным классом модуля является DataSet. Чтобы импортировать его в своё пространство имён, воспользуемся следующей инструкцией:
from vkvisualization.dataset import DataSet
Класс является наследуемым от pandas.DataFrame
, так что все операции, возможные по отношению к таблице Pandas, применимы и к классу DataSet.
В качестве примера я взял файл со статистикой с одной группы ВКонтакте и сохранил его под названием 'group.xls'
в текущем каталоге. Чтобы создать экземпляр класса DataSet со статистикой из этого файла, воспользуемся class-method DataSet.from_excel()
, передав туда путь к файлу.
dataset = DataSet.from_excel('group.xls')
В этой статье не будут рассмотрены все категории, указаны в файле со статистикой, их описание вы сможете найти в description GitHub репозитория.
Первое, что стоит рассмотреть — временной отрезок, за который приведена статистика. Для этого мы можем использовать DataSet.start_date()
и DataSet.end_date()
.
print(dataset.start_date(), dataset.end_date()) ----------------------------------------------- 2017-12-28T00:00:00.000000 2019-12-06T00:00:00.000000
Как мы видим, статистика приведена с 28 декабря 2017-го года по шестое декабря 2019-го года.
Получение данных
Первой категорией, которую мы рассмотрим, будет кол-во просмотров на записях группы за один день. Для этого воспользуемся DataSet.views(start=None, end=None)
. В этом методе, как и во всех метода класса DataSet, отвечающих за получение данных, параметры start и end ограничивают временной промежуток. Если не указать параметр start, то данные будут выбраны с самого начала данных, а если не указать параметр end, то данные будут выбраны по самый конец файла. Приступим, выбирая данные за июнь 2018-го года.
start, end = '2018-06-01', '2018-06-30'
Теперь получим показатели просмотров записей :
views = dataset.views(start=start, end=end)
Просмотрим, что у нас получилось :
[ 31 9 0 356 191 923 1053 2274 1565 1488 1982 1478 954 821
917 984 924 1068 2523 2105 1435 1179 917 842 896 924 1046 1048
1111 1151]
Все методы возвращают объект типа np.ndarray.
Теперь рассмотрим получение данных категории «Страна».
countries = dataset.country('Россия', start=start, end=end)
Дабы узнать список всех возможных значений для параметра country, используем метод DataSet.available_countries()
.
available_countries = dataset.available_countries()
Точно такие же операции применимы к категории «Город».
cities = dataset.city('Москва', start=start, end=end) available_cities = dataset.available_cities()
Заключение
Сегодня мы рассмотрели работу пакета VKVisualization, использовав класс DataSet. В следующей части этой статьи будет рассмотрена визуализация полученных данных. Вся информация о пакете приведена в описании GitHub репозитория.
Если помимо анализа данных вас интересует линейная алгебра, советую прочитать статью «Линейная алгебра — программируем с NumPy».
А также подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.