2015-10-20 112 views
0

我有一些问题,试图从以下link提取数据,并把它在一个数据帧正确显示语无伦次显示。数据在数据帧的熊猫

下面的代码给我我想要的,但我想是因为有一个具有相同class名称的链接中的一对夫妇的tablesReutersTabInit,被返回到数据帧的结果是有点混乱。

link = r'http://www.4-traders.com/MICROSOFT-CORPORATION-4835/financials/' 
soup = BeautifulSoup(requests.get(link).text, 'html.parser') 
pandas_1 = pd.read_html(link, flavor='bs4', header=0, index_col=0, 
         attrs={'class': "ReutersTabInit"}, encoding='utf8') 

的代码

[       2016e  2017e 
Size           
Capitalization   380 864 M$   - 
Entreprise Value (EV) 331 350 M$ 322 831 M$,        2016e 2017e 
Valuation         
P/E ratio (Price/EPS)  17,5x 15,3x 
Capitalization/Revenue  4,14x 3,86x 
EV/Revenue     3,60x 3,27x 
EV/EBITDA     9,82x 8,91x 
Yield (DPS/Price)   2,74% 3,02% 
Price to book (Price/BVPS) 4,56x 3,99x,            2016e 2017e 
Profitability            
Operating Margin (EBIT/Sales)    31,0% 32,1% 
operating Leverage (Delta EBIT/Delta Sales)  - 1,55x 
Net Margin (Net Profit/Revenue)    23,7% 24,5% 
ROA (Net Profit/Asset)      11,7% 13,1% 
ROE (Net Profit/Equities)     24,8% 26,5% 
Rate of Dividend        48,0% 46,4%,            2016e 2017e 
Balance Sheet Analysis          
CAPEX/Sales        6,52% 6,39% 
Cash Flow/Sales (Taux d'autofinancement) 32,4% 34,5% 
Capital Intensity (Assets/Sales)   2,03x 1,87x 
Financial Leverage (Net Debt/EBITDA)  -1,47x -1,60x] 

正如你所看到的结果,格式去所有的地方。我试图让它显示为这样。

所需的结果

      2016e  2017e 
Size           
Capitalization   380 864 M$   - 
Entreprise Value (EV) 331 350 M$ 322 831 M$,        

           2016e 2017e 
Valuation         
P/E ratio (Price/EPS)  17,5x 15,3x 
Capitalization/Revenue  4,14x 3,86x 
EV/Revenue     3,60x 3,27x 
EV/EBITDA     9,82x 8,91x 
Yield (DPS/Price)   2,74% 3,02% 
Price to book (Price/BVPS) 4,56x 3,99x,             

               2016e 2017e 
Profitability            
Operating Margin (EBIT/Sales)    31,0% 32,1% 
operating Leverage (Delta EBIT/Delta Sales)  - 1,55x 
Net Margin (Net Profit/Revenue)    23,7% 24,5% 
ROA (Net Profit/Asset)      11,7% 13,1% 
ROE (Net Profit/Equities)     24,8% 26,5% 
Rate of Dividend        48,0% 46,4%,            

               2016e 2017e 
Balance Sheet Analysis          
CAPEX/Sales        6,52% 6,39% 
Cash Flow/Sales (Taux d'autofinancement) 32,4% 34,5% 
Capital Intensity (Assets/Sales)   2,03x 1,87x 
Financial Leverage (Net Debt/EBITDA)  -1,47x -1,60x] 

这是相同的,如何在其网站上显示。

任何人有任何想法,我怎么能格式化显示每个表,在不同的DataFrames,或每个表在同一个数据帧,但是格式化的方式与网站一样吗?

+0

您能否给我们提供输出示例和更清晰的解释什么不起作用以及期望的结果是什么? – pausag

+0

@pausag我已经在期望的结果增加约我遇到的问题的详细信息。希望能帮助到你! –

回答

1

pd.read_html还给DataFrames的列表,所以当你打印出来pandas_1,它没有很好地对准的事情。只是打印其中的一个在同一时间,他们会看起来更像你期待什么。

In [30]: for df in pandas_1: 
    ....:  print df 
    ....:  print 
    ....: 
          2016e  2017e 
Size 
Capitalization   380 864 M$   - 
Entreprise Value (EV) 331 350 M$ 322 831 M$ 

           2016e 2017e 
Valuation 
P/E ratio (Price/EPS)  17,5x 15,3x 
Capitalization/Revenue  4,14x 3,86x 
EV/Revenue     3,60x 3,27x 
EV/EBITDA     9,82x 8,91x 
Yield (DPS/Price)   2,74% 3,02% 
Price to book (Price/BVPS) 4,56x 3,99x 

               2016e 2017e 
Profitability 
Operating Margin (EBIT/Sales)    31,0% 32,1% 
operating Leverage (Delta EBIT/Delta Sales)  - 1,55x 
Net Margin (Net Profit/Revenue)    23,7% 24,5% 
ROA (Net Profit/Asset)      11,7% 13,1% 
ROE (Net Profit/Equities)     24,8% 26,5% 
Rate of Dividend        48,0% 46,4% 

              2016e 2017e 
Balance Sheet Analysis 
CAPEX/Sales        6,52% 6,39% 
Cash Flow/Sales (Taux d'autofinancement) 32,4% 34,5% 
Capital Intensity (Assets/Sales)   2,03x 1,87x 
Financial Leverage (Net Debt/EBITDA)  -1,47x -1,60x 
+0

感谢兰迪。这么简单,但它没有发生在我身上。 :) –