def bucket_stats(values): nr = pd.DataFrame(values, columns=["IDs"]) nr["sample_bucket"] = sample_bucket(nr["IDs"].values) nrs = t.group(nr, "sample_bucket") nrs = t.relabel(nrs.reset_index(), "index", "bucket") nrs["%"] = nrs["sample_bucket_count"] / np.sum(nrs["sample_bucket_count"]) * 100 nrs = t.sort(nrs, "bucket") return nrs
import requests import datetime import os, os.path from vk_api import VkUpload from bs4 import BeautifulSoup from t import token, group from check import check from weather import * vk = vk_api.VkApi(token=token( )) # token() - получать в разделе "Работа с API" -> Ключ доступа vk._auth_token() vk.get_api() longpoll = VkBotLongPoll(vk, group()) # group() - id группы commands = 'Список команд:\n⚠ !чек Ваш_город - Проверить предупреждения по вашей области\n📍 !погода + метка_на_карте - Текущая погода в указанном месте\n🌆 !погода Ваш_город - Текущая погода в месте, который Вы указали в сообщении\n🌇 !погода - Текущая погода по городу, установленному в Вашем профиле VK (в сообщении место указывать не нужно)\n📍 !прогноз завтра + метка_на_карте - Прогноз погоды на завтра в указанном месте\n🌆 !прогноз завтра Ваш_город - Прогноз погоды на завтра в месте, которое Вы указали в сообщении\n🌇 !прогноз завтра - Прогноз погоды на завтра в городе, установленном в Вашем профиле VK (в сообщении место указывать не нужно)\n🌍 !цфо - Сводка прогнозов по ЦФО\n🗺 !карта - Прогностическая карта\n❓ !инфо - Подробности о предупрждениях\n💬 !легенда - Легенда карты для !карта' text_info = 'Зелёный - оповещения о погоде не требуется\n\nЖёлтый - погода потенциально опасна\n\nОранжевый - погода опасна. Имеется вероятность стихийных бедствий, нанесения ущерба\n\nКрасный - погода очень опасна. Имеется вероятность крупных разрушений и катастроф' def save_img(url): img_data = requests.get(url).content f = 'images/img' + str(time.time()) + '.jpg' with open(f, 'wb') as handler: handler.write(img_data) return (f) def photo(file):
""" ## Test they are distributed evenly - Create a 10 buckets distribution - This sampling depends on the fact that guids are generated at source randomly (i.e. with equal distribution) """ def is_sample_bucket(user_id): return (user_id % 10 == 0) # we can pick any number between 0 and 9 users["is_sampled"] = is_sample_bucket(users["user_id"].values) users.head() sg = t.group(users, "is_sampled") sg["%"] = sg["is_sampled_count"] / np.sum(sg["is_sampled_count"]) * 100 sg # generate buckets for further validation is doing the right thing # lets us check if generation at source random enought for an even distribution def sample_bucket(user_id): return (user_id % 10) def bucket_stats(values): nr = pd.DataFrame(values, columns=["IDs"]) nr["sample_bucket"] = sample_bucket(nr["IDs"].values) nrs = t.group(nr, "sample_bucket") nrs = t.relabel(nrs.reset_index(), "index", "bucket") nrs["%"] = nrs["sample_bucket_count"] / np.sum(nrs["sample_bucket_count"]) * 100 nrs = t.sort(nrs, "bucket")
def test_group(table1): """Tests row and column by name""" assert t.where(t.group(table1, "user"), "user", 1).reset_index()['index'].values[0] == 't'