Функция read_fwf
Функция read_fwf применяется для чтения текстовых файлов,
в которых данные выровнены по столбцам фиксированной ширины.
В отличие от read_csv, разделители здесь не требуются -
поля определяются позициями символов.
Основные параметры: filepath_or_buffer - путь к файлу,
colspecs - список кортежей (начало, конец) для каждого столбца,
widths - список целых чисел с шириной каждого столбца,
names - имена столбцов.
Синтаксис
pd.read_fwf(filepath_or_buffer, colspecs='infer', widths=None, names=None, **kwargs)
Пример
Пусть у нас есть файл data.txt с данными фиксированной ширины:
a b c
1 10 100
2 20 200
3 30 300
4 40 400
5 50 500
Считаем этот файл в таблицу. Укажем ширину столбцов вручную:
import pandas as pd
df = pd.read_fwf('data.txt', widths=[5, 5, 5])
print(df)
Результат выполнения кода:
a b c
0 1 10 100
1 2 20 200
2 3 30 300
3 4 40 400
4 5 50 500
Обратите внимание: пробелы сохраняются.
Пример
Используем параметр colspecs для задания точных позиций столбцов.
Каждый кортеж - это (начало, конец) позиции в строке:
import pandas as pd
df = pd.read_fwf(
'data.txt',
colspecs=[(0, 3), (4, 7), (8, 11)],
names=['col1', 'col2', 'col3']
)
print(df)
Результат выполнения кода:
col1 col2 col3
0 1 10 100
1 2 20 200
2 3 30 300
3 4 40 400
4 5 50 500
Пример
Обработаем файл с пропусками и разной шириной столбцов:
id name age
1 Alice 25
2 Bob 30
3 Carol 35
Укажем ширину каждого столбца через параметр widths:
import pandas as pd
df = pd.read_fwf('data.txt', widths=[3, 6, 4])
print(df)
Результат выполнения кода:
id name age
0 1 Alice 25
1 2 Bob 30
2 3 Carol 35
Пример
Чтение файла без указания ширины - Pandas попытается определить её автоматически:
a b c
1 10 100
2 20 200
3 30 300
import pandas as pd
df = pd.read_fwf('data.txt')
print(df)
Результат выполнения кода:
a b c
0 1 10 100
1 2 20 200
2 3 30 300
Автоопределение работает для файлов с разделителями-пробелами.
Смотрите также
-
функция
read_csv,
которая читает файлы с разделителями -
функция
read_table,
которая читает файлы с произвольным разделителем -
функция
read_excel,
которая читает файлы Excel -
функция
read_json,
которая читает данные в формате JSON