import pandas as pd
df = pd.read_html('https://www.sec.gov/Archives/edgar/data/1067983/000119312519076915/d684203ddef14a.htm',
match='Vice Chairman-Insurance Operations', header=1)
df = df[0]
df
Name and Principal Position | Unnamed: 1 | Year | Year.1 | Unnamed: 4 | Unnamed: 5 | Annual Compensation | Annual Compensation.1 | Annual Compensation.2 | Annual Compensation.3 | ... | Annual Compensation.5 | Unnamed: 12 | Unnamed: 13 | AllOtherCompensation | AllOtherCompensation.1 | Unnamed: 16 | Unnamed: 17 | TotalCompensation | TotalCompensation.1 | Unnamed: 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Name and Principal Position | NaN | Year | Year | NaN | NaN | Salary | Salary | NaN | NaN | ... | Bonus | NaN | NaN | AllOtherCompensation | AllOtherCompensation | NaN | NaN | TotalCompensation | TotalCompensation | NaN |
1 | Warren E. Buffett | NaN | NaN | 2018 | NaN | NaN | $ | 100000 | NaN | NaN | ... | $ | NaN | NaN | $ | 288968 | (2) | NaN | $ | 388968 | NaN |
2 | Chief Executive Officer/ | NaN | NaN | 2017 | NaN | NaN | NaN | 100000 | NaN | NaN | ... | | NaN | NaN | NaN | 375776 | (2) | NaN | NaN | 475776 | NaN |
3 | Chairman of the Board | NaN | NaN | 2016 | NaN | NaN | NaN | 100000 | NaN | NaN | ... | | NaN | NaN | NaN | 387881 | (2) | NaN | NaN | 487881 | NaN |
4 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
5 | Charles T. Munger | NaN | NaN | 2018 | NaN | NaN | NaN | 100000 | NaN | NaN | ... | | NaN | NaN | NaN | | NaN | NaN | NaN | 100000 | NaN |
6 | Vice Chairman of the Board | NaN | NaN | 2017 | NaN | NaN | NaN | 100000 | NaN | NaN | ... | | NaN | NaN | NaN | | NaN | NaN | NaN | 100000 | NaN |
7 | NaN | NaN | NaN | 2016 | NaN | NaN | NaN | 100000 | NaN | NaN | ... | | NaN | NaN | NaN | | NaN | NaN | NaN | 100000 | NaN |
8 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
9 | Gregory E. Abel(1) | NaN | NaN | 2018 | NaN | NaN | NaN | 16000000 | NaN | NaN | ... | 2000000 | (3) | NaN | NaN | 13750 | (5) | NaN | NaN | 18013750 | NaN |
10 | Vice Chairman-Non Insurance Operations | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
11 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
12 | Ajit Jain(1) | NaN | NaN | 2018 | NaN | NaN | NaN | 16000000 | NaN | NaN | ... | 2000000 | (3) | NaN | NaN | 13750 | (5) | NaN | NaN | 18013750 | NaN |
13 | Vice Chairman-Insurance Operations | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
14 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
15 | Marc D. Hamburg | NaN | NaN | 2018 | NaN | NaN | NaN | 2250000 | NaN | NaN | ... | | NaN | NaN | NaN | 13750 | (5) | NaN | NaN | 2263750 | NaN |
16 | Senior Vice President/CFO | NaN | NaN | 2017 | NaN | NaN | NaN | 1775000 | NaN | NaN | ... | 500000 | (4) | NaN | NaN | 13500 | (5) | NaN | NaN | 2288500 | NaN |
17 | NaN | NaN | NaN | 2016 | NaN | NaN | NaN | 1550000 | NaN | NaN | ... | | NaN | NaN | NaN | 13250 | (5) | NaN | NaN | 1563250 | NaN |
18 rows × 21 columns
# Start to clean up
df.dropna(axis=1, how='all')
Name and Principal Position | Year | Year.1 | Annual Compensation | Annual Compensation.1 | Annual Compensation.4 | Annual Compensation.5 | Unnamed: 12 | AllOtherCompensation | AllOtherCompensation.1 | Unnamed: 16 | TotalCompensation | TotalCompensation.1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Name and Principal Position | Year | Year | Salary | Salary | Bonus | Bonus | NaN | AllOtherCompensation | AllOtherCompensation | NaN | TotalCompensation | TotalCompensation |
1 | Warren E. Buffett | NaN | 2018 | $ | 100000 | NaN | $ | NaN | $ | 288968 | (2) | $ | 388968 |
2 | Chief Executive Officer/ | NaN | 2017 | NaN | 100000 | NaN | | NaN | NaN | 375776 | (2) | NaN | 475776 |
3 | Chairman of the Board | NaN | 2016 | NaN | 100000 | NaN | | NaN | NaN | 387881 | (2) | NaN | 487881 |
4 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
5 | Charles T. Munger | NaN | 2018 | NaN | 100000 | NaN | | NaN | NaN | | NaN | NaN | 100000 |
6 | Vice Chairman of the Board | NaN | 2017 | NaN | 100000 | NaN | | NaN | NaN | | NaN | NaN | 100000 |
7 | NaN | NaN | 2016 | NaN | 100000 | NaN | | NaN | NaN | | NaN | NaN | 100000 |
8 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
9 | Gregory E. Abel(1) | NaN | 2018 | NaN | 16000000 | NaN | 2000000 | (3) | NaN | 13750 | (5) | NaN | 18013750 |
10 | Vice Chairman-Non Insurance Operations | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
11 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
12 | Ajit Jain(1) | NaN | 2018 | NaN | 16000000 | NaN | 2000000 | (3) | NaN | 13750 | (5) | NaN | 18013750 |
13 | Vice Chairman-Insurance Operations | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
14 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
15 | Marc D. Hamburg | NaN | 2018 | NaN | 2250000 | NaN | | NaN | NaN | 13750 | (5) | NaN | 2263750 |
16 | Senior Vice President/CFO | NaN | 2017 | NaN | 1775000 | NaN | 500000 | (4) | NaN | 13500 | (5) | NaN | 2288500 |
17 | NaN | NaN | 2016 | NaN | 1550000 | NaN | | NaN | NaN | 13250 | (5) | NaN | 1563250 |
# Look at types at start to clean up
df.dtypes
Name and Principal Position object Unnamed: 1 float64 Year object Year.1 object Unnamed: 4 float64 Unnamed: 5 float64 Annual Compensation object Annual Compensation.1 object Annual Compensation.2 float64 Annual Compensation.3 float64 Annual Compensation.4 object Annual Compensation.5 object Unnamed: 12 object Unnamed: 13 float64 AllOtherCompensation object AllOtherCompensation.1 object Unnamed: 16 object Unnamed: 17 float64 TotalCompensation object TotalCompensation.1 object Unnamed: 20 float64 dtype: object