编辑熊猫数据框中的特定单元格

时间:2020-08-25 08:33:03

标签: python pandas dataframe

我正在尝试使用以下代码从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

拥有没有引用的数据框的正确方法是什么?

1 个答案:

答案 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'数据类型