(←) предыдущая запись ; следующая запись (→)

Поскольку мне снова приходится много работать с экселевскими табличками, и исправлять косяки, возникшие из-за типизации, расскажу байку. Вернее быль. Мне кажется, её уже все знают, но вдруг вы ещё нет.

В экселе (а также в гуглодоковских таблицах, либре- и опен-офисе) у каждой ячейки есть тип. Там может быть текст, число, число со значком валюты или… дата/время. И если тип ячейки не указать явно, то он будет определён автоматически. И это — боль!

Вы думаете 3.14 это число? Во-первых, вы в России, так что извольте писать 3,14. Во-вторых, 3.14 это 14 марта. А строка 1,2,3 легко может быть трактована как 1 февраля 2003.

Эта особенность экселя стала предметом ненависти и была неоднократно высмеяна. Но людям, у которых в таблицах встречаются имена генов, совсем не до шуток, потому что среди генов есть:
JUN1, DEC2, SEP3, OCT4, FEB5, MARCH10, SEP53…
Ну ладно-ладно, SEP53 определяется нормально.

А вот SEP3 горит кострами рябин. Вам может казаться, что в ячейке записано SEP3, ведь оно на экране так и будет показано. Но при сохранении оно может превратиться в разное.

Например, в 03.09.2025. Или в 9/3/2025: если вы шагом ранее, отчаявшись преобразовать строку 3.14 в число, подумали, что эмиграция таблицы в США решит все ваши проблемы, то теперь у вас ещё и даты пишутся не как у людей.

А если вы случайно — вместо того, чтобы одним движением превратить ячейку в текстовую — сначала поменяли формат на число, то у вас теперь в ячейке записано 45903. И в текст она превратится именно в такой: «45903». Никаких сюрпризов!
Но не думайте, что это случайное число. Нет, тут всё подчинено строгой логике: это число дней с 30 (sic!) декабря 1899 года 🤷‍♀️.
Не спрашивайте. Даже я, видавший много странных инженерных решений, когда сейчас откопал эту жемчужину, был удивлён.

Вы думаете, что вы бы заметили ошибку? Я вас огорчу: в вашей табличке может быть двадцать тысяч генов. В 19990 строках из 20000 — корректные названия генов, а где-то в середине закопано третье сентября… Удачи в отладке!
Ах да, это уже десятая такая табличка за сегодня, так что вы немного устали перепроверять себя. Тем более, что помимо excel вы работаете в pandas, который даёт вам другой набор ошибок автоматического приведения типов.
Из-за этой одной строки некоторые скрипты ломаются, а другие — и это намного хуже — работают, но неправильно.

В общем, немало биологических работ пострадали от excel. И решили, чтобы не искушать судьбу… переименовать гены, тем более, что переименовывать сущности это вообще наш профессиональный спорт.
Так SEP3 превратился в SEPTIN3, OCT4 — в POU5F1. А DEC25 — в OCT31. Нет, простите, это уже совсем другая история.

программистское, наука, байки