Как прочитать текст в фрейм данных - PullRequest
1 голос
/ 14 октября 2019

Я пытаюсь прочитать некоторые веб-данные в текстовый фрейм, и я продолжал сталкиваться с проблемой "multi-char delimiter". Вот ссылка на данные: https://ticdata.treasury.gov/Publish/mfh.txt

from urllib.request import urlretrieve
import pandas as pd

url = 'https://ticdata.treasury.gov/Publish/mfh.txt'
urlretrieve(url, 'US Treasurys Holders.txt')

names = ['Jul 2019', 'Jun 2019', 'May 2019', 'Apr 2019', 'Mar 2019', 'Feb 2019', 'Jan 2019', 'Dec 2018', 'Nov 2018',
         'Oct 2018', 'Sep 2018', 'Aug 2018', 'Jul 2018']

data = pd.read_csv('US Treasurys Holders.txt', skipfooter=21, engine='python', skiprows=11, names=names)

Я использовал sep = '\ s +', но код продолжал показывать мне:

Возможно, ошибкаиз-за игнорирования кавычек при использовании разделителя с несколькими символами

1 Ответ

1 голос
/ 14 октября 2019

Проблема связана с наличием пробелов в названиях стран для файла, который вы пытаетесь открыть. Попробуйте использовать разделитель минимум с двумя пробелами:

data = pd.read_csv(
    "US Treasurys Holders.txt",
    skipfooter=21,
    engine="python",
    sep="\s\s+",
    skiprows=11,
    names=names,
)

Что дает то, что я считаю правильным выводом (здесь подмножество из 5 столбцов х 5 строк):

Jul 2019    Jun 2019    May 2019    Apr 2019    Mar 2019
Japan   1130.8  1122.9  1101.0  1064.0  1078.1
China, Mainland 1110.3  1112.5  1110.2  1113.0  1120.5
United Kingdom  334.7   341.1   323.1   300.8   317.1
Brazil  309.9   311.7   305.7   306.7   311.7
Ireland 258.2   262.1   270.7   269.7   277.6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...