数据在 Pandas DataFrame 中显示不连贯
Data displayed incoherently in Pandas DataFrame
我在尝试从下面 link
中提取数据并将其正确显示在 DataFrame 中时遇到了一些问题。
下面的代码给了我想要的,但我认为是因为 link 中有几个 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]
如您所见,格式无处不在。我正在尝试让它这样显示。
想要的结果
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]
这与它在网站上的显示方式相同。
任何人都知道我如何格式化它以在不同的 DataFrame 中显示每个 table,或在同一 DataFrame 中显示每个 table,但格式与网站相同?
pd.read_html 返回一个 DataFrame 列表,因此当您打印 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
我在尝试从下面 link
中提取数据并将其正确显示在 DataFrame 中时遇到了一些问题。
下面的代码给了我想要的,但我认为是因为 link 中有几个 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]
如您所见,格式无处不在。我正在尝试让它这样显示。
想要的结果
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]
这与它在网站上的显示方式相同。
任何人都知道我如何格式化它以在不同的 DataFrame 中显示每个 table,或在同一 DataFrame 中显示每个 table,但格式与网站相同?
pd.read_html 返回一个 DataFrame 列表,因此当您打印 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