— Индекс повторяется?
— Угу, в метках времени есть дубликаты с миллисекундами, pandas по умолчанию их не объединяет.
— Добавь `drop_duplicates` с `keep='first'`, а затем пересемплируй до дневной частоты.
Кончик пальца Лян Юя замер, и он тихо произнес:
— Спасибо.
Сунь Ваньи снова заткнул наушники в уши и легко бросил:
— С тебя стакан соевого молока.
4 02:10 Второй баг
У Линь Юя вовсю ревел вентилятор, температура взлетела до 90 °C.
— GPU взорвался, в `categorical_feature` для LightGBM передали не то.
Чэн Фан как раз зубрил текст и выпалил на автомате:
— Удаляем базы, валим в закат —
Линь Юй холодно бросил:
— Сначала оставь здесь видеокарту.
Сунь Ваньи подошел и прижал ладонь к вентиляционному отверстию ноутбука Линь Юя:
— Уменьшай `batch`, добавляй `early_stopping_rounds=50`.
Линь Юй поправил очки и ничего не ответил, но пальцы застучали по клавишам еще быстрее.
Через три минуты температура упала до 75 °C, лог продолжил прокручиваться.
5 03:00 Гипогликемия
Чэн Фан сдал позиции первым.
Он сидел на корточках, наклеивая стикеры, а когда поднялся, перед глазами потемнело, и он рухнул обратно на пол.
Лян Юй бросился ему на помощь и нащупал на ладони холодный пот.
Сунь Ваньи протянул ему кофейный стаканчик:
— Сделай пару глотков.
Чэн Фан выдавил слабым голосом:
— Горькое, как китайское снадобье.
Линь Юй выудил из кармана батончик Dove и кинул в него:
— Ешь, не задерживай прогресс.
Рассжёвывая шоколад, Чэн Фан пробормотал:
— У вас, кодеров, сердца чернее некуда.
Но никто ему не возразил: под лампами все три лица покрывали одинаковые бледные тени и черные круги от недосыпа.
6 03:30 Синхронизация
Лян Юй запушил очищенный csv в GitHub.
Линь Юй сделал pull, запустил скрипт, заполнил пропущенные значения и запушил обратно.
Чэн Фан вывесил на доску новейшую логику индустрии, обведя красным маркером волнистой линией слова «рыночный шок».
Сунь Ваньи перевел голосовое сообщение старшекурсницы в текст, перетащил его в общий документ и мимоходом разослал копию каждому.
На четырех экранах одновременно всплыли уведомления об успешном коммите, похожие на безмолвные праздничные хлопушки.
7 04:10 Пятнадцать минут тишины
Сунь Ваньи внезапно поднял руку и сделал жест, призывающий к тишине.
Затем он выдернул наушники, открыл чистый документ Word и набил строку заголовка:
《Разбор первого конфликта команды Typhoon》
Четверо обступили экран, никто не произнес ни слова — было слышно лишь дыхание друг друга и шум кондиционера.
Сунь Ваньи написал:
1. Неравномерное распределение обязанностей привело к эмоциональному взрыву.
2. Не оставили друг другу времени на передышку.
3. Капитан (я) избегал грязной и тяжелой работы.
Закончив, он развернул ноутбук к остальным:
— Дополняйте.
Лян Юй протянул руку и добавил пункт:
4. Связность стека технологий не обсудили заранее.
Линь Юй:
5. Разное понимание критериев оценки.
Чэн Фан:
6. Не предусмотрели награду за вехи (например, жареную курицу).
Сунь Ваньи захлопнул ноутбук:
— Шесть пунктов, по одному на брата, квиты.
Он поднял взгляд, обведя им три изможденных лица:
— Еще спорим?
Лян Юй первым покачал головой. Линь Юй поправил очки, уголки его губ дрогнули в подобии улыбки. Чэн Фан поднял руку:
— Хочу подать заявку на награду в виде жареной курицы прямо сейчас.
8 04:30 Доставка
Сунь Ваньи заглянул в телефон и обнаружил, что в круглосуточную читальню доставка еды не пускают.
Он вздохнул и сунул кошелек Чэн Фану:
— Ты бегаешь быстрее всех, дуй к Макдоналдсу у Восточных ворот: четыре острых куриных бургера, четыре стакана горячего молока, запиши на мой счет.
Чэн Фан взял деньги, ноги еще дрожали, но он ужесиял:
— Капитан — мудрейший!
Стоило ему уйти, как Линь Юй вдруг произнес:
— Я тоже пойду, в одни руки четыре стакана не утащить.
И вот две самые тощие фигуры, высокая и пониже, шлепая по росе четырех часов утра, умчались прочь.
В читальне остались только Лян Юй и Сунь Ваньи.
9 04:45 Плечом к плечу за кодом
Лян Юй снова надел наушники, но убавил громкость.
Сунь Ваньи пододвинул стул ближе, экраны встали вплотную друг к другу, как на стриме с двумя камерами.
Они пользовались одной мышкой на двоих: Лян Юй писал функции, Сунь Ваньи — комментарии. Стук клавиатур сливался в единый ритм, но больше не резал слух.
В тот момент, когда код успешно выполнился, на экране выскочило:
`RMSE:2.83%`
Лян Юй выдохнул, его плечи опали.
Сунь Ваньи повернул голову, его голос звучал так тихо, что слышно было только им двоим:
— Погрешность ниже трех процентов, мы выжили.
Лян Юй тихо произнес «угу» и вдруг спросил:
— Хочешь спать?
Сунь Ваньи улыбнулся:
— Хочу, но не буду.
Лян Юй снял куртку и набросил ее на спинки их стульев:
— Тогда продержимся еще два часа, до рассвета.
10 05:20 Перед рассветом
Чэн Фан и Линь Юй вернулись с пакетами из Макдоналдса, ступая бесшумно, на цыпочках.
Толкните они дверь — и увидели бы, как те двое прижались головами, у каждого по наушнику на двоих, а на экранах мелькает один и тот же кусок кода с мигающим курсором.
Чэн Фан поставил бургеры на стол и шепнул:
— Вылитые два пингвина, сбившиеся в стайку, чтобы согреться.
Линь Юй на удивление не стал ястричать, а лишь воткнул трубочки в стаканы с молоком и поставил их под руку обоим.
11 05:40 Рассвет
За окном чернильно-синее небо разбавилось оттенком яичной скорлупы.
Первый луч солнца пробился сквозь жалюзи, упав на столешницу и заставив капли конденсата на бумажных стаканчиках сверкать, словно осколки бриллиантов.
Сунь Ваньи сладко потянулся, так что суставы громко хрустнули.
Лян Юй допил последние капли молока, оставив вокруг губ белые «усики».
Чэн Фан перевернул доску и написал красным маркером:
Typhoon v1.0 готова
Погрешность 2.83%
До внутривузовского отбора ровно 23 дня
Он нарисовал огромный восклицательный знак, похожий на флаг, водруженный на вершине горы.
12 06:00 Возвращение в общежитие
Четверо собрали ноутбуки, погасили свет, провели карточками у турникета и вышли.
В конце коридора уборщица мыла пол; подняв голову, она добродушно улыбнулась:
— Парни, опять всю ночь не спали?
Сунь Ваньи бросил пустой стакан из-под кофе в урну:
— Тетя, доброе утро.
Та покачала головой:
— Молодость — это прекрасно, после бессонной ночи и то такие бодрые.
Стоило выйти из библиотеки, как в лицо ударил холодный ветер, но в нем чувствовалась сладость росы.
Чэн Фан застегнул куртку до самого горла:
— Мне вдруг кажется, мы победим.
Линь Юй:
— Не накаркай, сначала пройдем межвузовский этап.
Лян Юй скосил глаза на Сунь Ваньи:
— Что на завтрак?
Сунь Ваньи поправил воротниковый значок с самолетиком:
— Соевый творог, с двумя ложками перца, с меня угощение.
13 Эпилог 06:15 У входа в столовую
В столовой еще не включили свет, рулонные жалюзи были подняты наполовину.
Четверо присели на корточках у входа, точь-в-точь как четыре голодных кота, ждущих подачки.
Чэн Фан использовал соломинку как барабанную палочку, постукивая по стакану с молоком:
— За тайфун и за бессонную ночь!
Линь Юй:
— За баги.
Лян Юй:
— За рассвет.
Сунь Ваньи стукнул все четыре стакана друг о друга, и его звонкий голос разнесся по утру:
— За примирение и за следующую ссору —
Потому что даже после ссоры мы снова сможем сидеть здесь на корточках в ожидании первой миски горячего соевого творога.
Вдалеке из школьных динамиков вовремя зазвучали первые ноты «Ясного дня».
Ветерок, прилетевший со стадиона, пах молодой травой; он развеял горечь ночного кофе и заставил глаза парней сиять еще ярче.
—— Глава 19 закончена ——
Глава 20. Школьный автобус сломался
Глава 20. Школьный автобус сломался (пешком 8 км)
—— После того как буря утихает, всегда остается разбитая дорога, заставляющая запомнить каждую лужу, пройденную плечом к плечу.
1 7 октября 16:40 Остановка у главных ворот Цинбэя
Последний день национальных праздников, поток возвращающихся студентов напоминал прорвавшую плотину воду.
Лян Юй с рюкзаком для ноутбука за плечами, слушая в наушниках инструментальную музыку, стоял в хвосте очереди.
Сунь Ваньи с двумя стаканами ледяного соевого молока протиснулся сквозь толпу и приложил один стакан к его шее:
— Ледяное, чтобы взбодриться.
Чэн Фан тащил 28-дюймовый чемодан, колесики которого издавали жалобный скрежет, перекатываясь через лежачие полицейские.
Линь Юй пришел последним, капюшон черной толстовки надвинут на голову, вылитая грозовая туча.
— Последний автобус в 16:45, опоздаем — придется ждать целый час. — Сунь Ваньи взглянул на часы.
Школьный автобус с хрипом подрулил к остановке, двери со стуком распахнулись, и толпа ринулась внутрь.
Четверку втиснули на самый задний ряд, рюкзак Лян Юя лежал поперек колен, чемодан Чэн Фана загородил проход, а водитель орал:
— Проходим вглубь! Еще народ влезет!
2 16:55 Поломка
Едва автобус выехал за ворота, двигатель издал странный скрежещущий звук, словно старой собаке наступили на хвост.
Водитель пару раз нажал на газ, корпус резко затрясло, и машина заглохла.
Пассажиры в салоне мгновенно притихли, только кондиционер продолжал из последних сил гнать воздух.
Водитель выскочил наружу и откинул капот — оттуда повалил белый дым. Праздничный наплыв пассажиров в сочетании со старым мотором окончательно приказали долго жить.
— Выходим, выходим! Компания пришлет подмену не раньше чем через сорок минут!
Толпа взорвалась какофонией стонов и жалоб.
Голос Чэн Фана звучал громче всех:
— У меня в чемодане пять цзиней морепродуктов для соседей по комнате, они же растают!
Сунь Ваньи уже поднялся на ноги, поудобнее перехватив лямки рюкзака:
— Идем пешком, 8 км, два часа пути.
Линь Юй откинул капюшон, являя миру мертвенно-бледный взгляд:
— Ты рехнулся? На улице 34 градуса, ни тени.
Лян Юй снял наушники и сунул их в карман:
— Идем. В салоне душно, тепловой удар схватим.
3 17:05 В путь
Все четверо вышли из автобуса и встали под платанами у ворот.
Навигатор показывал: пешком 8,3 км, расчетное время — 1 час 55 минут.
Чэн Фан взвалил чемодан на плечо, словно нес торпеду:
— Уговор дороже денег: кто устанет — тот мне помогает тащить.
Сунь Ваньи с хрустом загрыз соломинку от соевого молока:
— Помочь-то поможем, но вяленую креветку из чемодана поделишь пополам со мной.
Лян Юй уже первым шагнул на тротуар, и закатное солнце вытянуло его тень в длинную полосу.
4 17:15 Первый перекресток
Красный свет горел 120 секунд, от асфальта поднимался густой зной.
Чэн Фан опустил чемодан на землю, тяжело дыша, как загнанный пес:
— На школьном нормативе в тысячу метров я так не уставал.
Линь Юй выудил из кармана мини-вентилятор и направил на себя:
— Хотите, расскажу черную шутку, чтобы охладиться?
http://bllate.org/book/34109/4199251
Готово: