Python 语言 用 Pandas+Requests 爬取统计局公开数据 GDP / 人口 / 就业率

Python阿木 发布于 18 小时前 1 次阅读


阿木博主一句话概括:基于Pandas和Requests的Python爬虫实践:统计局公开数据抓取与分析

阿木博主为你简单介绍:
随着互联网的普及,越来越多的数据以公开的形式呈现。本文将介绍如何使用Python语言结合Pandas和Requests库,从国家统计局网站爬取GDP、人口和就业率等公开数据,并进行数据处理和分析。通过本文的学习,读者可以掌握基本的网络爬虫技术,并了解如何使用Pandas进行数据分析和可视化。

一、
国家统计局作为我国官方数据发布机构,提供了丰富的经济、社会、人口等领域的统计数据。这些数据对于研究、分析和决策具有重要意义。如何高效地从网站中获取这些数据,并进行处理和分析,是许多数据分析师面临的挑战。本文将详细介绍如何使用Python语言结合Pandas和Requests库,实现这一目标。

二、环境准备
在开始编写代码之前,我们需要准备以下环境:
1. Python 3.x版本
2. Pandas库:用于数据处理和分析
3. Requests库:用于发送HTTP请求
4. BeautifulSoup库:用于解析HTML文档

安装所需库:
python
pip install pandas requests beautifulsoup4

三、数据抓取
以下是一个简单的爬虫示例,用于从国家统计局网站抓取GDP、人口和就业率数据。

python
import requests
from bs4 import BeautifulSoup
import pandas as pd

定义目标URL
url = 'http://data.stats.gov.cn/easyquery.htm?cn=001000001&zb=zb&sj=2019'

发送GET请求
response = requests.get(url)

解析HTML文档
soup = BeautifulSoup(response.text, 'html.parser')

提取表格数据
table = soup.find('table', class_='table1')

创建DataFrame
data = []
for row in table.find_all('tr')[1:]: 跳过标题行
cols = row.find_all('td')
data.append([col.text.strip() for col in cols])

转换为DataFrame
df = pd.DataFrame(data, columns=['指标', '数据', '单位', '备注'])

打印DataFrame
print(df)

四、数据处理
获取数据后,我们需要对数据进行清洗和转换,以便进行进一步的分析。

python
数据清洗
df = df.dropna() 删除缺失值
df = df[df['单位'] != '(%)'] 删除不需要的行

数据转换
df['数据'] = df['数据'].astype(float) 将数据转换为浮点数

五、数据分析
接下来,我们可以使用Pandas进行数据分析,例如计算GDP增长率、人口增长率等。

python
计算GDP增长率
gdp_growth = df[df['指标'] == 'GDP增长率']['数据'].iloc[0]

计算人口增长率
population_growth = df[df['指标'] == '人口增长率']['数据'].iloc[0]

打印结果
print(f'GDP增长率:{gdp_growth}%')
print(f'人口增长率:{population_growth}%')

六、数据可视化
为了更直观地展示数据,我们可以使用Matplotlib库进行数据可视化。

python
import matplotlib.pyplot as plt

绘制GDP增长率折线图
plt.figure(figsize=(10, 5))
plt.plot(df['年份'], df['GDP增长率'], marker='o')
plt.title('GDP增长率')
plt.xlabel('年份')
plt.ylabel('GDP增长率(%)')
plt.grid(True)
plt.show()

七、总结
本文介绍了如何使用Python语言结合Pandas和Requests库,从国家统计局网站爬取GDP、人口和就业率等公开数据,并进行数据处理和分析。通过本文的学习,读者可以掌握基本的网络爬虫技术,并了解如何使用Pandas进行数据分析和可视化。在实际应用中,可以根据需求调整爬虫策略和数据处理方法,以获取更全面、准确的数据。

注意:在实际操作中,请遵守相关法律法规,尊重数据版权,合理使用数据。