2014-02-07 2 views
2

Приносим извинения, если этот вопрос был дан ответ в другом месте. Я не смог найти ответ еще через поиск здесь или в документации Pandas (возможно, я только что пропустил это).Доступ к объектам DataFrame Pandas из списка DataFrames

Я пытаюсь импортировать html-файл в python через pandas и не знаю, как получить данные, которые мне нужны из результата. Я работаю над Windows 7 и с помощью Python 3.3 вместе с Pandas

Использование функции read_html в pandas, похоже, работает и возвращает список dataframes. Я новичок в Python (переход из Matlab) и не знаю, как использовать список dataframes. Документация описывает, как использовать и манипулировать файлами данных, но как я могу получить данные из их списка?

Некоторые другие ответы на этом сайте предлагают использовать функции lxml непосредственно для разбора html-файлов, однако кажется, что read_html работает отлично в моем случае.

Вот код, я вошел:

import pandas as pd 
file = 'F:\\Documents\\Python\\EA Performance Manager\\History.html' 
History = pd.read_html(file, header=0, infer_types=False) 

Что дает:

>>> History 
[<class 'pandas.core.frame.DataFrame'> 
Int64Index: 428 entries, 1 to 428 
Data columns (total 13 columns): 
Ticket   428 non-null values 
Strategy  428 non-null values 
Symbol   428 non-null values 
B/S   428 non-null values 
Amount (k)  428 non-null values 
Open Time  428 non-null values 
Open Price  428 non-null values 
Close Time  428 non-null values 
Close Price 428 non-null values 
High/Low  428 non-null values 
Rollover  428 non-null values 
Gross P/L  428 non-null values 
Pips   428 non-null values 
dtypes: object(13)] 

Мне нужно получить доступ к отдельным столбцам данных для анализа (желательно хранить их в массиве типа strutures - все еще учится для правильного использования python вам придется каким-то образом преобразовать данные, поскольку infer_type является ложным, но я думаю, что это еще одна проблема). Вопрос в том, как мне это сделать?

Примечание: Файл History.html был загружен с торговой платформы в Интернете как History.xls, только после попытки использовать функции чтения Excel безрезультатно, я выяснил, что это был файл html. Содержимое файла - это история торговли, которая открывается и закрывается для автоматической торговой системы. Первая строка дает заголовок для каждого столбца.

+0

'' История [0] '' даст вам первый элемент. FYI, как правило, имена верхнего регистра используются для классов; имена переменных - '' like_this'' – Jeff

+0

Столбцы должны быть доступны по нотации. .Если не является законным, он не будет работать. Я бы проверял имена и конвертировал их. Затем вы можете рассматривать их как массивы python с точки зрения разрезания и индексирования, а также всех подмножеств панд. – joel3000

+0

@Jeff Спасибо за вашу помощь, History [0] вернул фрейм данных, позволяющий мне получить доступ к данным с помощью History [0]. как указал Джоэл. Благодарим вас за то, что вы указали соглашения об именах для переменных и классов, и я начну внедрять их в свой код. –

ответ

1

History[0] предоставит вам первый элемент.

FYI, как правило, имена в верхнем регистре используются для классов; имена переменных: like_this

Это просто условные обозначения; История является юридическим идентификатором.

+0

Еще раз спасибо за помощь. –

0

Для каждого столбца dataframe, который вы хотите преобразовать в список, вы можете перенести значения, а затем преобразовать их в список следующим образом.

Здесь произвольное DataFrame с одного столбца (если есть больше чем один столбец, а затем нарезать на столбцы, и сделать это для каждого столбца):

s=DataFrame({'column 1':random.sample(range(10),10)}) 

Тогда получим значения с помощью .values и транспонирование с помощью .T и преобразовать в список с помощью .tolist()

s.values.T.tolist() 

Однако, это может дать вам все значения в длинных (с L в конце каждого). Если это так, то вы можете использовать простое преобразование типа данных, чтобы получить целое число или плавающую точку или что угодно. Надеюсь, это поможет! Дайте мне знать, если нет.

Смежные вопросы