HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Библиотека Pandas разрабатывалась для работы с табличными данными. Популярными типами файлов для их хранения являются:</p>
1 <p>Библиотека Pandas разрабатывалась для работы с табличными данными. Популярными типами файлов для их хранения являются:</p>
2 <ul><li>csv - текстовый формат, в котором значения в столбцах отделены друг от друга разделителем, часто запятой</li>
2 <ul><li>csv - текстовый формат, в котором значения в столбцах отделены друг от друга разделителем, часто запятой</li>
3 <li>xlsx или xls - форматы файлов электронных таблиц Microsoft Excel</li>
3 <li>xlsx или xls - форматы файлов электронных таблиц Microsoft Excel</li>
4 </ul><p>Для чтения и записи таблиц в указанные форматы в Pandas существуют специальные методы. О них пойдет речь в этом уроке.</p>
4 </ul><p>Для чтения и записи таблиц в указанные форматы в Pandas существуют специальные методы. О них пойдет речь в этом уроке.</p>
5 <h2>Чтение данных</h2>
5 <h2>Чтение данных</h2>
6 <p>Начнем работу с продажами в сети из четырех магазинов за одну неделю, которые хранятся в формате csv с запятой в качестве разделителя. Воспользуемся методом read_csv():</p>
6 <p>Начнем работу с продажами в сети из четырех магазинов за одну неделю, которые хранятся в формате csv с запятой в качестве разделителя. Воспользуемся методом read_csv():</p>
7 <p>При чтении данных метод не знает, что считать за индекс в данных, поэтому расставляет индексы самостоятельно. Это возрастающая последовательность целых чисел, которая начинается с нуля. В нашем примере явным индексом является первый столбец - Weekday. Дополним метод параметром index_col с явным указанием номера столбца, который хранит индексы:</p>
7 <p>При чтении данных метод не знает, что считать за индекс в данных, поэтому расставляет индексы самостоятельно. Это возрастающая последовательность целых чисел, которая начинается с нуля. В нашем примере явным индексом является первый столбец - Weekday. Дополним метод параметром index_col с явным указанием номера столбца, который хранит индексы:</p>
8 <p>У разделителя в данных формата csv есть важное значение при чтении. По умолчанию это запятая. Попытка считать данные с разделителем в виде точки с запятой приведет к некорректному чтению. В примере ниже в результате получается пустой DataFrame, в котором индексами стали данные в строках - не то, что хотелось получить:</p>
8 <p>У разделителя в данных формата csv есть важное значение при чтении. По умолчанию это запятая. Попытка считать данные с разделителем в виде точки с запятой приведет к некорректному чтению. В примере ниже в результате получается пустой DataFrame, в котором индексами стали данные в строках - не то, что хотелось получить:</p>
9 <p>Для корректного чтения в данном случае достаточно воспользоваться параметром sep:</p>
9 <p>Для корректного чтения в данном случае достаточно воспользоваться параметром sep:</p>
10 <p>Иногда описание данных может предшествовать началу самих табличных данных. В примере ниже файл начинается со строк:</p>
10 <p>Иногда описание данных может предшествовать началу самих табличных данных. В примере ниже файл начинается со строк:</p>
11 <p>Попытка прочитать данный файл повлечет ошибку:</p>
11 <p>Попытка прочитать данный файл повлечет ошибку:</p>
12 <p>Чтобы пропустить ряд строк с описанием, нужно воспользоваться параметром skiprows. Его значение - это количество опускаемых из рассмотрения первых строк в файле:</p>
12 <p>Чтобы пропустить ряд строк с описанием, нужно воспользоваться параметром skiprows. Его значение - это количество опускаемых из рассмотрения первых строк в файле:</p>
13 <h2>Запись данных</h2>
13 <h2>Запись данных</h2>
14 <p>После чтения и трансформации данных результаты могут быть сохранены в файловую систему. Для этого в Pandas есть ряд специальных методов. Для рассматриваемых типов данных это to_csv() и to_excel():</p>
14 <p>После чтения и трансформации данных результаты могут быть сохранены в файловую систему. Для этого в Pandas есть ряд специальных методов. Для рассматриваемых типов данных это to_csv() и to_excel():</p>
15 <p>В примере выше метод to_csv() позволяет сохранить DataFrame в изначальном виде. Если в качестве индекса сохранить значения, которые присвоены Pandas по умолчанию, то это может мешать дальнейшему чтению и обработке. Также такие индексы не несут важной информации.</p>
15 <p>В примере выше метод to_csv() позволяет сохранить DataFrame в изначальном виде. Если в качестве индекса сохранить значения, которые присвоены Pandas по умолчанию, то это может мешать дальнейшему чтению и обработке. Также такие индексы не несут важной информации.</p>
16 <p>У нас есть такие данные:</p>
16 <p>У нас есть такие данные:</p>
17 <p>Для них с индексами по умолчанию достаточно воспользоваться параметром index, чтобы не сохранять их файл:</p>
17 <p>Для них с индексами по умолчанию достаточно воспользоваться параметром index, чтобы не сохранять их файл:</p>
18 <p>В команде разработки можно проговорить, что будет использоваться в качестве разделителя в csv-файле. Также это может быть продиктовано совместимостью с другими частями программного продукта. Чтобы задать разделитель, нужно использовать параметр sep:</p>
18 <p>В команде разработки можно проговорить, что будет использоваться в качестве разделителя в csv-файле. Также это может быть продиктовано совместимостью с другими частями программного продукта. Чтобы задать разделитель, нужно использовать параметр sep:</p>
19 <p>Метод to_excel() позволяет сохранять табличные данные в формат MS Excel. Параметризация аналогична методу to_csv(). Меняется только название метода и расширение файла с .csv на .xlsx:</p>
19 <p>Метод to_excel() позволяет сохранять табличные данные в формат MS Excel. Параметризация аналогична методу to_csv(). Меняется только название метода и расширение файла с .csv на .xlsx:</p>
20 <p>В некоторых случаях сохранение названий столбцов также можно отключить. Это может потребоваться, когда нужно сохранить значения в ячейках таблицы, или когда названия столбцов не несут дополнительной информации, и не предполагается их использование. Для этого достаточно задать параметр header значением False:</p>
20 <p>В некоторых случаях сохранение названий столбцов также можно отключить. Это может потребоваться, когда нужно сохранить значения в ячейках таблицы, или когда названия столбцов не несут дополнительной информации, и не предполагается их использование. Для этого достаточно задать параметр header значением False:</p>
21 <p>Большие таблицы текстовых данных занимают большой объем. Чтобы уменьшить его, можно создавать архивы методами Pandas. Для этого нужно определить метод сжатия и названия файла в архиве, при этом указать их в виде словаря в параметре compression:</p>
21 <p>Большие таблицы текстовых данных занимают большой объем. Чтобы уменьшить его, можно создавать архивы методами Pandas. Для этого нужно определить метод сжатия и названия файла в архиве, при этом указать их в виде словаря в параметре compression:</p>
22 <h2>Выводы</h2>
22 <h2>Выводы</h2>
23 <p>Данные для долгосрочного хранения размещают в виде файлов на жестких дисках. В данном уроке методами библиотеки Pandas выполнялись операции чтения и записи csv и xlsx файлов - наиболее популярных форматов хранения табличных данных.</p>
23 <p>Данные для долгосрочного хранения размещают в виде файлов на жестких дисках. В данном уроке методами библиотеки Pandas выполнялись операции чтения и записи csv и xlsx файлов - наиболее популярных форматов хранения табличных данных.</p>
24 <p>Данные форматы позволяют хранить таблицы в структурированной форме, но при этом данная форма может сильно варьироваться:</p>
24 <p>Данные форматы позволяют хранить таблицы в структурированной форме, но при этом данная форма может сильно варьироваться:</p>
25 <ul><li>Могут использоваться различные варианты разделителей значений в столбцах</li>
25 <ul><li>Могут использоваться различные варианты разделителей значений в столбцах</li>
26 <li>Строки описания данных могут появляться в шапке таблицы</li>
26 <li>Строки описания данных могут появляться в шапке таблицы</li>
27 <li>Индексы могут храниться не в привычном крайнем левом столбце</li>
27 <li>Индексы могут храниться не в привычном крайнем левом столбце</li>
28 </ul><p>В уроке на практических примерах показано, как действовать в таких ситуациях. Конфигурацией параметров методов мы научились:</p>
28 </ul><p>В уроке на практических примерах показано, как действовать в таких ситуациях. Конфигурацией параметров методов мы научились:</p>
29 <ul><li>Пропускать первые строки в таблице</li>
29 <ul><li>Пропускать первые строки в таблице</li>
30 <li>Явно указывать столбец с индексом при чтении</li>
30 <li>Явно указывать столбец с индексом при чтении</li>
31 <li>Игнорировать названия столбцов и индексы при записи таблиц</li>
31 <li>Игнорировать названия столбцов и индексы при записи таблиц</li>
32 <li>Архивировать таблицы для сохранения дискового пространства</li>
32 <li>Архивировать таблицы для сохранения дискового пространства</li>
33 </ul>
33 </ul>