#python #pandas #dataframe
Вопрос:
Я пытаюсь загрузить данные по этой ссылке, файл txt, в котором каждая строка начинается с имен переменных (содержит пробелы) и пару пробелов, разделяющих имена с фактическими данными. Вот первые несколько строк:
All items............................................ 100.000 100.000
Food and beverages.................................. 14.794 16.246
Food............................................... 13.771 15.343
Food at home...................................... 7.579 8.746
Cereals and bakery products...................... .984 1.124
Cereals and cereal products..................... .301 .366
Flour and prepared flour mixes................. .040 .051
Я попробовал несколько вариантов, например , указав «t » в качестве ограничителей read_csv
, и несколько необычных опций, скопированных из других вопросов и ответов, и ни один не работает. Либо данные удаляются, либо имена переменных интерпретируются как данные, и я получаю слишком много столбцов.
Как я должен прочитать этот файл в df в pandas?
Комментарии:
1. Если вы используете pandas, вы можете попробовать таблицу фиксированной ширины (pandas.read_fwf).
2. Это прекрасно работает. Большое спасибо!
Ответ №1:
Прочитайте ваше досье с pandas.read_fwf
помощью . widths
Аргумент соответствует ширине текста, который будет образовывать каждый столбец.
import pandas as pd
df = pd.read_fwf("myfile.txt", widths=[54, 10, 15], header=None)
print(df)
что дает:
0 1 2
0 All items........................................ 100.000 100.000
1 NaN NaN NaN
2 Food and beverages............................... 14.794 16.246
3 Food............................................. 13.771 15.343
4 NaN NaN NaN
5 Food at home..................................... 7.579 8.746
6 Cereals and bakery products...................... 0.984 1.124
7 Cereals and cereal products..................... 0.301 0.366
8 Flour and prepared flour mixes................. 0.040 0.051