如何利用Pandas读取web数据,再综合列表、字典解读数据,进行简单的数据抽取和分析后,利用plotly可视化(html网页版展示);
时间: 2024-03-31 17:35:22 浏览: 46
要利用 Pandas 读取 Web 数据,可以使用 Pandas 的 `read_html()` 函数。这个函数会从 HTML 页面中提取表格数据,并返回一个 DataFrame 对象。
以下是一个读取 Web 数据并进行简单分析和可视化的示例:
```python
import pandas as pd
import plotly.graph_objs as go
import plotly.offline as pyo
# 读取 Web 数据
url = 'https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)'
dfs = pd.read_html(url)
df = dfs[0]
# 数据清洗和抽取
df = df[['Country or area', 'UN Region', 'Population(1 July 2018)']]
df = df.rename(columns={'Country or area': 'Country', 'Population(1 July 2018)': 'Population'})
df['Population'] = df['Population'].str.replace(',', '').astype(int)
# 分析数据
total_population = df['Population'].sum()
region_population = df.groupby('UN Region')['Population'].sum().sort_values(ascending=False)
# 可视化数据
trace1 = go.Bar(x=region_population.index, y=region_population.values)
trace2 = go.Pie(labels=region_population.index, values=region_population.values)
layout1 = go.Layout(title='Population by UN Region (Bar Chart)')
layout2 = go.Layout(title='Population by UN Region (Pie Chart)')
fig1 = go.Figure(data=[trace1], layout=layout1)
fig2 = go.Figure(data=[trace2], layout=layout2)
pyo.plot(fig1, filename='population_bar_chart.html')
pyo.plot(fig2, filename='population_pie_chart.html')
```
上述代码中,我们首先使用 `pd.read_html()` 函数读取了一个维基百科页面的表格数据,并抽取了需要的列。然后我们对数据进行了清洗和处理,计算了全球总人口和各个 UN 地区的人口,并用 Plotly 绘制了柱形图和饼图来展示这些数据。最后我们使用 `pyo.plot()` 函数将可视化结果保存为 HTML 文件并在浏览器中打开。
需要注意的是,这个示例仅供参考,实际项目中需要根据具体需求进行修改和扩展。
阅读全文