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>