У меня проблемы с фреймом данных в Python.
Я хотел бы только те столбцы с определенным текстом ("Grado en"), но я получаю ошибку:
Невозможно индексировать вектором, содержащим значения NA / NaN, если нет ни NA, ни NaN.
Если я использую опцию na=False
, он вернет пустой фрейм данных.Я искал решение, но ничего не могу найти.
Вот мой код:
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import pandas as pd
list_of_titles_graus = []
html_graus = urlopen("https://www.universidadviu.es/grados-online") # Insert your URL to extract
bsObj_graus = BeautifulSoup(html_graus.read());
for link in bsObj_graus.find_all('div'):
list_of_titles_graus.append((link.span))
df_graus = pd.DataFrame({'title': list_of_titles_graus})
#Depuramos para que nos queden solo los titulos de los grados.
graudep = df_graus.dropna() #Eliminamos N/As
graudep = graudep.drop_duplicates() # Eliminamos duplicados.
#Check if there are NA or NaN
graudep.isnull().sum().sum()
graudep.isna().sum().sum()
#This gives me the error.
graudep = graudep[(graudep['title'].str.contains("Grado en"))]
KeyError: '[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan\n nan nan...] not in index'
#This doesn't do anything.
graudep = graudep[(graudep['title'].str.contains("Grado en", na=True))]
#This returns an empty dataframe.
graudep = graudep[(graudep['title'].str.contains("Grado en", na=False))]
Мой желаемый вывод следующий:
207 Grado en Psicología
221 Grado en Educación Primaria
233 Grado en Derecho
245 Grado en Traducción e Interpretación
257 Grado en Ingeniería Informática
269 Grado en Relaciones Internacionales
281 Grado en Trabajo Social
293 Grado en Administración y Dirección de E...
306 Grado en Educación Infantil
318 Grado en Criminología y Ciencias de la S...
330 Grado en Musicología
342 Grado en Economía
Заранее спасибо