2015-10-20 4 views
0

У меня возникли проблемы с попыткой извлечь данные из нижеуказанного link и правильно отобразить их в DataFrame.Данные отображаются некогерентно в Pandas DataFrame

Код ниже дает мне то, что я хочу, но я думаю, потому что есть несколько tables в связи с тем же class имени: ReutersTabInit, результаты, которые возвращаются в DataFrame любопытное перепутались.

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] 

Как вы можете видеть, формат идет повсюду. Я пытаюсь показать его как таковой.

Желаемая Result

      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 или в каждой таблице в том же DataFrame, но отформатирован так же, как на веб-сайте?

+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

Спасибо, Рэнди. Так просто, но это не произошло со мной. :) –

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