Я прочитал таблицу Википедии в фрейм данных:
https://es.wikipedia.org/wiki/Anexo: Municipios_de_la_Comunidad_de_Madrid
import pandas as pd
from unicodedata import normalize
df = pd.read_html('https://es.wikipedia.org/wiki/Anexo:Municipios_de_la_Comunidad_de_Madrid')
madrid = df[0]
madrid['Población(2017)'] = madrid['Población(2017)'].apply(lambda x:normalize('NFKD', x)).str.replace(' ','')
madrid['Población(2017)'] = pd.to_numeric(madrid['Población(2017)'])
Мне пришлось unicodedata.normalize
, потому что очевидные пробелы для числа форматирования, такие как 206 589, на самом деле были символом xa0
Теперь я хочу выбрать из этого фрейма данных подмножество городов, население которых прибавляет общее число как можно ближе к заданному числу. Я хотел бы выбрать, население каких городов, вместе взятых, будет чуть больше 2200000 жителей
Я пробовал варианты этого без результата
madrid[madrid['Población(2017)'].sum() > 2178000]
сообщение об ошибке:
KeyError Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
2645 try:
-> 2646 return self._engine.get_loc(key)
2647 except KeyError:
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: True
Может ли кто-нибудь определить условие, которое выбирает то, что я хочу?
Заранее спасибо