我正在尝试使用以下代码从Wikipedia抓取一张表:
df_euro_cities_wiki=pd.read_html("https://en.wikipedia.org/wiki/List_of_European_cities_by_population_within_city_limits")[0]
wiki_dfdrop=df_euro_cities_wiki.drop(columns=['Unnamed: 0', 'Date', '2011 Eurostatpopulation[1]', 'Image', 'Ref.'])
但是,当我抓取表格时,它会包含引用。
Table with references
然后我尝试使用代码编辑这些条目:
wiki_dfdrop.at['0', 'City'] = 'Istanbul'
wiki_dfdrop.at['1', 'City'] = 'Moscow'
wiki_dfdrop.at['0', 'Officialpopulation'] = '15,519,267'
不是编辑现有条目,而是在表末尾生成新条目。
New entries
拥有没有引用的数据框的正确方法是什么?
答案 0 :(得分:0)
您可以使用pandas在所有列上应用地图以在[
上拆分,并仅选择“ [”
df_euro_cities_wiki=pd.read_html("https://en.wikipedia.org/wiki/List_of_European_cities_by_population_within_city_limits")[0]
wiki_dfdrop=df_euro_cities_wiki.drop(columns=['Unnamed: 0', 'Date', '2011 Eurostatpopulation[1]', 'Image', 'Ref.'])
wiki_dfdrop = wiki_dfdrop.applymap(lambda x: str(x).split('[')[0])
>>print(wiki_dfdrop)
City Country Officialpopulation Location
0 Istanbul Turkey 15,519,267 41°00′49″N 28°57′18″E / 41.013611°N 28.955°E
1 Moscow Russia 12615279 55°45′00″N 37°37′00″E / 55.75°N 37.616667°E
2 London United Kingdom 9126366 51°30′26″N 0°07′39″W / 51.507222°N 0.1275°W
.........
请注意,所得的Officialpopulation
列将为'string'数据类型