Pandas — мощная библиотека Python для обработки и анализа данных, а загрузка данных из текстовых файлов является фундаментальной задачей. В этой статье рассматриваются эффективные методы импорта данных из различных текстовых форматов в фреймы данных Pandas.
Содержание
- Загрузка CSV и файлов с разделителями с помощью
read_csv()
- Обработка файлов с фиксированной шириной столбцов с помощью
read_fwf()
- Использование
read_table()
для файлов, разделённых табуляцией, и других файлов с разделителями
1. Загрузка CSV и файлов с разделителями с помощью read_csv()
Функция read_csv()
является основным инструментом для импорта файлов значений, разделённых запятыми (CSV). Её универсальность распространяется и на другие файлы с разделителями, задавая разделитель с помощью параметра sep
или delimiter
. Давайте изучим её возможности:
import pandas as pd
# Загрузка CSV-файла
df_csv = pd.read_csv("data.csv")
print(df_csv.head()) #Используем head() для отображения только первых нескольких строк для лучшей читаемости
# Загрузка файла, разделённого табуляцией
df_tsv = pd.read_csv("data.tsv", sep="t")
print(df_tsv.head())
# Загрузка файла с разделителем "|"
df_pipe = pd.read_csv("data.txt", delimiter="|")
print(df_pipe.head())
Помимо базовой загрузки, read_csv()
предлагает мощные параметры для тонкой настройки:
sep
илиdelimiter
: Задает разделитель (по умолчанию ‘,’).header
: Номер(а) строки(ок) для имен столбцов (по умолчанию 0, используйтеNone
, если нет заголовка).names
: Список имен столбцов, если нет строки заголовка.index_col
: Столбец, используемый в качестве индекса DataFrame.usecols
: Выбор конкретных столбцов для повышения производительности.nrows
: Чтение только первыхn
строк для предварительного просмотра больших файлов.skiprows
: Пропуск указанных строк в начале.encoding
: Указание кодировки файла (например, ‘utf-8’, ‘latin-1’).dtype
: Указание типов данных для столбцовcomment
: Символ, обозначающий строки комментариев
2. Обработка файлов с фиксированной шириной столбцов с помощью read_fwf()
Метод read_fwf()
(чтение файлов с фиксированной шириной столбцов) необходим для файлов, где столбцы определяются их фиксированной шириной, а не разделителями. Это распространено в устаревших системах.
import pandas as pd
# Определение ширины столбцов
colspecs = [(0, 10), (10, 20), (20, 30)] # Столбцы имеют ширину 10, 10 и 10 символов
# Загрузка файла с фиксированной шириной
df_fwf = pd.read_fwf("data_fwf.txt", colspecs=colspecs, header=None)
df_fwf.columns = ['Column1', 'Column2', 'Column3']
print(df_fwf.head())
Основные параметры для read_fwf()
включают:
colspecs
: Список кортежей, определяющих начальную и конечную позиции столбцов.widths
: Альтернативаcolspecs
, предоставляющая список ширин столбцов.header
: Номер строки для заголовка (то же, что и вread_csv()
).names
: Предоставляет имена столбцов (то же, что и вread_csv()
).
3. Использование read_table()
для файлов, разделённых табуляцией, и других файлов с разделителями
read_table()
в значительной степени эквивалентна read_csv()
, по умолчанию используя разделитель табуляции (t
). Она идеально подходит для файлов, разделённых табуляцией (TSV), но может обрабатывать и другие разделители, указав параметр sep
. Она имеет все параметры read_csv()
, обеспечивая аналогичную гибкость.
import pandas as pd
# Загрузка файла, разделённого табуляцией
df_table = pd.read_table("data.tsv")
print(df_table.head())
# Указание другого разделителя
df_table_custom = pd.read_table("data.txt", sep="|")
print(df_table_custom.head())
Pandas предлагает мощные инструменты для эффективного импорта данных из различных текстовых форматов. Выбор правильного метода зависит от структуры ваших данных. Не забывайте решать проблемы кодировки и обрабатывать пропущенные значения после загрузки.