Data Wrangling

Эффективная загрузка текстовых данных в Pandas

Spread the love

Pandas — мощная библиотека Python для обработки и анализа данных, а загрузка данных из текстовых файлов является фундаментальной задачей. В этой статье рассматриваются эффективные методы импорта данных из различных текстовых форматов в фреймы данных Pandas.

Содержание

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 предлагает мощные инструменты для эффективного импорта данных из различных текстовых форматов. Выбор правильного метода зависит от структуры ваших данных. Не забывайте решать проблемы кодировки и обрабатывать пропущенные значения после загрузки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *