我正在尝试通过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文件。该文件的内容是自动交易系统的交易历史打开和关闭。第一行给出了每列的标题。
答案 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)。如果是这种情况,那么您可以使用简单的数据类型转换来获取整数或浮点,或任何所需的。我希望有所帮助!如果没有,请告诉我。