Python pandas создание datafrane из csv, встроенного в веб-текстовый файл - PullRequest
1 голос
/ 18 февраля 2020

Я пытаюсь импортировать данные в формате CSV в Pandas фрейм данных. Данные CSV находятся в файле .txt, который находится по веб-адресу. Проблема в том, что я хочу импортировать только часть (или части) файла .txt, который отформатирован как CSV (см. Изображение ниже). По сути, мне нужно пропустить первые 9 строк, а затем импортировать строки 10-16 как CSV.

Мой код

import csv
import pandas as pd
import io

url = "http://www.bom.gov.au/climate/averages/climatology/windroses/wr15/data/086282-3pmMonth.txt"
df = pd.read_csv(io.StringIO(url), skiprows = 9, sep =',', skipinitialspace = True)
df

Я получаю длинное сообщение об ошибке, которое в конечном итоге говорит "EmptyDataError: Нет столбцов парсинг из файла "

Я посмотрел похожие примеры Прочитать .txt файл с Python Pandas - строки и числа с плавающей запятой , но это не так.

Snippet of .txt file with CSV part highlighted

1 Ответ

1 голос
/ 18 февраля 2020

Приведенный выше код пытается прочитать файл CSV из самого URL, а не из текстового файла, извлеченного из этого URL. Чтобы понять, что я имею в виду, выньте параметр skiprows и затем покажите фрейм данных. Вы увидите это:

Empty DataFrame
Columns: [http://www.bom.gov.au/climate/averages/climatology/windroses/wr15/data/086282-3pmMonth.txt]
Index: []

Обратите внимание, что столбцы являются самим URL.

Импорт requests (возможно, вам придется сначала установить его) и тогда попробуйте это:

content = requests.get(url).content
df = pd.read_csv(io.StringIO(content.decode('utf-8')),skiprows=9)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...