Я довольно новичок в Python, но мне интересно брать таблицы, очищать их, а затем запускать вычисления. Я взял таблицу доходов из Википедии, очистил столбцы с номерами знаков доллара и запятых (например, от 26 400 до 26400 долларов США), а затем попытался преобразовать их в целые числа и установить условия на основе значений. Хотя суммы отображаются без '$' или ',' в обновленном фрейме данных, я все равно получаю сумму с '$' и ',' всякий раз, когда я ссылаюсь на отдельную запись или в столбцах.
Вот код - извиняюсь, если я должен был разделить блоки больше - это мой первый пост:
import requests
import pandas as pd
from bs4 import BeautifulSoup
URL = "https://en.wikipedia.org/wiki/List_of_Maine_locations_by_per_capita_income"
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
all_tables = soup.find_all('table', class_="wikitable")
A = []
B = []
C = []
D = []
E = []
F = []
G = []
for row in all_tables[0].findAll('tr'):
cells = row.findAll('td')
if len(cells) == 7:
A.append(cells[0].text.strip())
B.append(cells[1].text.strip())
C.append(cells[2].text.strip())
D.append(cells[3].text.strip())
E.append(cells[4].text.strip())
F.append(cells[5].text.strip())
G.append(cells[6].text.strip())
df = pd.DataFrame(A,columns=['Rank'])
df['County']=B
df['Per capita income']=C
df['Median household income']=D
df['Median family income']=E
df['Population']=F
df['Number of households']=G
df
Начальный кадр показывает '$' и ','.
В этот момент я удалил столбцы C через E всех '$' и ',' s. Вот, например, столбец C.
df['Per capita income'] = df['Per capita income'].str.replace(',', '')
df['Per capita income'] = df['Per capita income'].str.replace('$', '')
Затем я попытался преобразовать значения (без запятых и знаки доллара) из "str" в "int".
df['Per capita income'] = df['Per capita income'].astype(int)
Знак доллара и запятая пропали, как показано ниже.
Хотя изменение правильно отображает в кадре данных, любая ссылка в любую ячейку по-прежнему выдается «str» со знаком доллара и запятой.
Argh!
Я предполагаю, что где-то пропустил шаг, потому что Я пробовал несколько методов преобразования "str" в "int."