Реализация Pandas read_fwf() в Python

Чтобы прочитать данные из форматированных текстовых файлов фиксированной ширины в DataFrame, панды ввели функцию под названием read_fwf()
.Так что же такое форматированные текстовые файлы фиксированной ширины? Форматированные текстовые файлы с фиксированной шириной — это файлы, в которых каждое поле в строке имеет фиксированную ширину или фиксированное количество символов.
Эти типы файлов в основном использовались в устаревших системах для хранения и обмена данными. Для чтения данных из таких файлов и преобразования их в DataFrame библиотека Pandas предоставляет функцию read_fwf(). Эта функция принимает имя файла или дескриптор файла в качестве входных данных и возвращает DataFrame. Он также поддерживает дополнительные параметры для настройки, такие как указание ширины столбцов, строк заголовков, типов данных и т. д.
Преимущества использования функции read_fwf()
Функция read_fwf() полезна при обработке данных с согласованным форматом и структурой, что упрощает чтение и анализ данных. Кроме того, функция может эффективно обрабатывать большие наборы данных с высокой скоростью, что важно при работе с большими данными.
Реализация функции read_fwf()
В этом разделе мы продемонстрируем реализацию функции read_fwf() на трех примерах. Для иллюстрации мы будем использовать образец файла «data.txt», содержащий отформатированные значения фиксированной ширины. Вы можете скачать файл отсюда:
Этот файл содержит один столбец значений фиксированной ширины с шириной 10 символов на значение.
Пример 1. Чтение файла фиксированной ширины с одним столбцом
import pandas as pd
df = pd.read_fwf('data.txt', colspecs="infer", header=None)
print(df)
Мы импортируем библиотеку pandas как pd
. Затем мы используем pd.read_fwf()
функция для чтения файла с именем data.txt
который содержит отформатированные строки фиксированной ширины во фрейме данных pandas pd.read_fwf()
содержит имя или путь к файлу для чтения, это необязательный аргумент, определяющий ширину столбцов в файлах. infer автоматически выводит ширину столбца из входного файла, и последний аргумент также является необязательным, он указывает наличие заголовка или нет, в данном случае его нет. Наконец, мы печатаем результат.
Выход:

Пример 2. Чтение многостолбцового файла с фиксированной шириной
import pandas as pd
colspecs = [(0, 5), (5, 10), (10, 15)] # define column widths
df = pd.read_fwf('data.txt', colspecs=colspecs, header=None,
names=['col1', 'col2', 'col3'])
print(df)
В этом примере мы указываем ширину столбца с помощью параметра colspecs. Мы определяем список кортежей, содержащих начальную и конечную позиции каждого столбца во входном файле. Как и раньше, для заголовка установлено значение none, чтобы указать, что в файле нет строки заголовка. [‘col1’, ‘col2’, ‘col3’] — это имена столбцов в результирующем DataFrame. Наконец, мы печатаем результат.
Выход:

Пример 3: пропуск строк и указание типов данных
import pandas as pd
colspecs = [(0, 5), (5, 10), (10, 15)] # define column widths
df = pd.read_fwf('data.txt', colspecs=colspecs, header=None,
names=['col1', 'col2', 'col3'], dtype={'col1': int, 'col2': float})
print(df)
В этом коде мы указываем dtype
это типы данных столбцов в результирующем DataFrame.(0, 5), (5, 10), (10, 15)
являются аргументами, которые определяют ширину каждого столбца во входном файле. В dtype
мы указываем тип данных float и integer столбцов, где каждый ключ — это имя столбца, а каждое значение — соответствующий тип данных. Наконец, мы печатаем результат.
Выход:

Заключение
В этой статье мы реализовали read_fwf()
метод в pandas, который является мощным инструментом для чтения файлов в формате с фиксированной шириной и создания DataFrame. Он позволяет легко и эффективно анализировать данные с согласованной структурой и может обрабатывать большие наборы данных с высокой скоростью и эффективностью. Сначала мы сделали краткий обзор этого, а позже увидели три метода его реализации. Какими еще способами вы можете применить read_fwf() в своих задачах обработки данных?
Читайте больше интересных статей ниже:
Ссылка на источник