[英]How to replace dataframe append with concat?
我一直在做一个在线课程,其中包括以下用于网络抓取的代码片段。 当我在课程的 Jupyter 笔记本环境中运行它时,它不会出现任何错误。
但是当我自己运行它时,我收到一个警告,要求使用 concat 而不是 append 数据帧。
我需要做些什么来修改下面的代码片段以使用数据帧 concat? 我查看了这个问题的其他一些示例,并尝试了各种方法来修改代码,但我似乎无法让它工作。
population_data = pd.DataFrame(columns=["Rank", "Country", "Population", "Area", "Density"])
for row in tables[table_index].tbody.find_all("tr"):
col = row.find_all("td")
if (col != []):
rank = col[0].text
country = col[1].text
population = col[2].text.strip()
area = col[3].text.strip()
density = col[4].text.strip()
population_data = population_data.append({"Rank":rank, "Country":country, "Population":population, "Area":area, "Density":density}, ignore_index=True)
population_data
警告如下所示:
C:\Users\My Name\AppData\Local\Temp\ipykernel_22060\394869253.py:11: FutureWarning: frame.append 方法已弃用,将在未来版本中从 pandas 中删除。 请改用 pandas.concat。
population_data = population_data.append({"Rank":rank, "Country":country, "Population":population, "Area":area, "Density":density}, ignore_index=True)
这是我更换它的解决方案。 我还清理了变量初始化,使其更加整洁。
cols = ["Rank", "Country", "Population", "Area", "Density"]
population_data = pd.DataFrame(columns=cols)
for row in tables[table_index].tbody.find_all("tr"):
col = row.find_all("td")
if (col != []):
rank, country, population, area, density =
col[0].text, col[1].text, col[2].text.strip(),
col[3].text.strip(), col[4].text.strip()
new_entry_df = pd.DataFrame(np.array([rank,country,population,area,density]),
columns=cols)
population_data = pd.concat([population_data, new_entry_df], axis=0)
population_data.tail(3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.