简体   繁体   English

使用第一行作为列名?熊猫read_html

[英]Use first row as column names? Pandas read_html

I have this simple one line script: 我有这个简单的单行脚本:

from pandas import read_html

print read_html('http://money.cnn.com/data/hotstocks/', flavor = 'bs4')

Which works, fine, but the column names are missing, they are being identified as 1, 2, 3. Is there an easy way to tell pandas to use the first row as the column names? 哪个工作正常,但是列名缺失,它们被识别为1,2,3。是否有一种简单的方法可以告诉pandas使用第一行作为列名? I know I could just store the names as a list and set them, and then skip the first row, but am wondering if there is an easier/better way. 我知道我可以将名称存储为列表并设置它们,然后跳过第一行,但我想知道是否有更简单/更好的方法。

Currently it prints: 目前它打印:

                           0       1       2         3
0                    Company   Price  Change  % Change
1             AAPL Apple Inc  115.31   +6.17    +5.65%
2   BAC Bank of America Corp   15.20   -0.43    -2.75%
3            YHOO Yahoo! Inc   46.46   -1.53    -3.19%
4        MSFT Microsoft Corp   41.19   -1.47    -3.45%
5            FB Facebook Inc   76.24   +0.46    +0.61%
6     GE General Electric Co   23.84   -0.54    -2.21%
7                 T AT&T Inc   32.68   -0.13    -0.40%
8            F Ford Motor Co   14.46   -0.24    -1.63%
9            INTC Intel Corp   33.78   -0.41    -1.20%
10    CSCO Cisco Systems Inc   26.80   -0.09    -0.35%

'read_html` takes a header parameter. 'read_html`采用标头参数。 You can pass a row index: 您可以传递一个行索引:

read_html('http://money.cnn.com/data/hotstocks/', header =0, flavor = 'bs4')

Worth noting this caveat in the docs: 值得注意的是文档中的这个警告:

For example, you might need to manually assign column names if the column names are converted to NaN when you pass the header=0 argument 例如,如果在传递header = 0参数时将列名转换为NaN,则可能需要手动分配列名

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.html.read_html.html http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.html.read_html.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM