从DataFrames列表中访问Pandas DataFrame对象

时间:2014-02-07 00:27:30

标签: pandas python-3.3

如果这个问题已在其他地方得到解答,我道歉。我还没有通过这里的搜索或Pandas文档找到答案(尽管我很可能错过了它)。

我正在尝试通过pandas将html文件导入python,并且不确定如何从结果中获取所需的数据。我正在使用Windows 7并使用Python 3.3和Pandas

使用pandas中的read_html函数似乎可以工作并返回数据帧列表。我是Python的新手(从Matlab迁移),我不确定如何使用数据帧列表。该文档描述了如何使用和操作数据框,但如何从列表中获取数据框?

本网站上的其他一些答案建议直接使用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)]

我需要访问各个数据列进行分析(最好将它们存储在类似数组的结构中 - 仍然学会正确使用python,因为infer_type是假的,所以必须以某种方式转换数据,但我认为这是另一个问题) 。问题是我该怎么做?

注意:History.html文件是从一个基于Web的交易平台下载的History.xls,只有在尝试使用excel阅读功能无效后才发现它实际上是一个html文件。该文件的内容是自动交易系统的交易历史打开和关闭。第一行给出了每列的标题。

2 个答案:

答案 0 :(得分:1)

History[0]将为您提供第一个元素。

仅供参考,通常大写名称用于类;变量名称为like_this

这些只是惯例;历史是一个合法的标识符。

答案 1 :(得分:0)

对于要转换为列表的每个数据框列,您可以转置值,然后将其转换为列表,如下所示。

这是一个包含一列的任意DataFrame(如果有多个列,则切入列,并为每列执行此操作):

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

然后使用.values获取值并使用.T进行转置,并使用.tolist()转换为列表

s.values.T.tolist() 

但是,这可能会给你所有的long值(每个值的末尾都有一个L)。如果是这种情况,那么您可以使用简单的数据类型转换来获取整数或浮点,或任何所需的。我希望有所帮助!如果没有,请告诉我。