Я скачал данные из Интернета и сохранил их в формате df. Я новичок в Python, поэтому некоторые термины могут быть неправильно указаны.
df ниже:
0 1 2 3
0 United States (105) United States (105) United States (105) United States (105)
1 NaN Alabama (0) Louisiana (2) Ohio (4)
2 NaN Alaska (0) Maine (0) Oklahoma (0)
3 NaN Arizona (0) Maryland (2) Oregon (0)
4 NaN Arkansas (0) Massachusetts (9) Pennsylvania (28)
5 NaN California (0) Michigan (1) Rhode Island (0)
6 NaN Colorado (0) Minnesota (0) South Carolina (0)
7 NaN Connecticut (3) Mississippi (0) South Dakota (0)
8 NaN Delaware (1) Missouri (1) Tennessee (0)
9 NaN Florida (0) Montana (0) Texas (0)
10 NaN Georgia (0) Nebraska (0) Utah (0)
11 NaN Hawaii (0) Nevada (0) Vermont (0)
12 NaN Idaho (0) New Hampshire (0) Virginia (1)
13 NaN Illinois (2) New Jersey (7) Washington (0)
14 NaN Indiana (0) New Mexico (0) Washington, D.C. (3)
15 NaN Iowa (2) New York (36) West Virginia (0)
16 NaN Kansas (0) North Carolina (1) Wisconsin (0)
17 NaN Kentucky (2) North Dakota (0) Wyoming (0)
18 Additional Countries / Territories Additional Countries / Territories Additional Countries / Territories Additional Countries / Territories
19 NaN Canada (1) Germany (1) Unknown (3)
20 NaN England (5) Ireland (6) NaN
Как видите, данные находятся в списке и очень неструктурированы. Я хочу сделать данные в два столбца. Один с заголовком «location», в котором находятся названия штатов и стран, и один с именем «number», в котором находится номер в (). Я хочу удалить повторяющиеся значения и значения NaN, но я верю, что смогу сделать это, если дать остальное правильное направление.
Я заблудился, как начать.
Спасибо!
Код, используемый до сих пор:
url = "http://www.baseball-almanac.com/players/birthplace.php?y=1876"
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html)
table = soup.find_all('table')[6]
df = pd.read_html(str(table))
df = df[0]