Заход в аналитику
Всем барев!
Вечерняя минутка программирования.
Промпт инженерия - это здорово. Но как-то мы прикинули и решили, что если её подкрепить аналитическими скиллами, то вообще здорово будет. Но вот вопрос - если просят сказать "что-нибудь на этом вашем, аналитическом", то что, в первую очередь в виду имеют? Кажется, Python и SQL. Ну вот мы и начали. Python и SQL.
Про Python мы уже, кажется, писали. Ну это там, где дрон летает и всяко разно сажает и перевысаживает. А вот про SQL - нет ещё. Вы вот знали что это не "эс-ку-эль", а "сиквел"? Проф деформация и жаргон. Как компАс. Язык структурированных запросов. Чтобы смысл из данных извлекать.
Но чтобы смысл извлекать, какие-то данные нужны. Мы думали-думали и придумали взять датасет Титаник. По современным меркам петабайтов Интернета и Больших Языковых Моделей этот датасет вообще крошка - 891 запись чтобы потренироваться и ещё примерно 400 чтобы потестироваться. Меньше только ирисы Фишера, разве что.
Стали колупаться и выяснили прикол. CSV файл (текстовый с запятыми между элементами) можно не только в Питон засовывать, но и в плагин DuckDB программы DBeaver. Теперь жара и начинается. Можно на питоне программу писать, а можно запросы на SQL.
Ну, например, давайте на среднюю выживаемость по всему датасету посмотрим
source = open("titanic.csv")
n_pass = 0
n_surv = 0
header = next(source)
for line in source:
survived = int(line.split(",")[1])
n_pass += 1
s_surv += survived
print("n_pass =", n_pass, "n_surv =", n_surv, "surv rate =", n_surv/n_pass)
source.close()
Открыли файл, завели две переменные для количества пассажиров и для количества выживших. Пробежались по файлу в режиме итератора (если файл брать как контейнер в цикле, из него строчки высыпаются). А, да. Не забыли с помощью next() достать первую строчку отдельно. Потому что это заголовок, а данные потом идут. Строчку разбили на части по запятым, выбрали вторую (уже наизусть знаем, где поле выживших), конвертнули в целое число. К пассажирам при каждой прокрутке цикла полюбасу прибавляем 1, к выжившим - флажок из датасета. Ну и всё. Распечатываем сколько всего пассажиров, сколько выжило, процент выживших - 38% (уже наизусть помним).
А теперь, как это в SQL
select avg(survived) as avg_surv
from titanic
Два больших строительных блока: select + from. Ну и почти на прямом английском пишем что хотим видеть среднее по выжившим. На SQL как-то короче выходит. С чего бы это...
#education #junior #analytics
