Python

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

Выход:

Читать Fwf Eg1

Пример 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. Наконец, мы печатаем результат.

Выход:

Читать Fwf Eg2

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

Выход:

Прочитать FWF Eg3

Заключение

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

Читайте больше интересных статей ниже:


Ссылка на источник

Похожие статьи

Кнопка «Наверх»