目录
一、案例背景
半导体芯片作为现代科技产业的核心基石,广泛应用于消费电子、通信、汽车、人工智能等众多领域,对全球经济和科技发展起着关键支撑作用。从高端的中央处理器(CPU)、图形处理器(GPU)到各类传感器芯片,半导体芯片的技术创新和产能扩张始终是行业焦点。然而,该行业面临着技术研发难度大、资金投入高、市场竞争激烈以及供应链复杂等诸多挑战。通过运用 Python 进行深入的数据挖掘与分析,能够助力芯片企业优化研发方向、合理规划产能、精准把握市场需求,同时也为投资者和政策制定者提供决策依据,推动半导体芯片行业的持续创新与发展。
二、代码实现
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import requests
from bs4 import BeautifulSoup
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import statsmodels.api as sm
from statsmodels.tsa.arima.model import ARIMA
2.1 数据收集
数据来源涵盖行业权威研究机构(如 IC Insights、Gartner)发布的报告、半导体芯片企业财报、电子元器件交易平台数据以及政府科技部门的相关统计数据。
# 从IC Insights网站抓取全球半导体市场规模数据
url = 'https://www.icinsights.com/research - services/semiconductor - market - statistics'
headers = {
'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers = headers)
soup = BeautifulSoup(response.text, 'html.parser')
market_size_data = []
table = soup.find('table', class_='market - size - table')
rows = table.find_all('tr')
for row in rows[1:]:
cols = row.find_all('td')
year = cols[0].text.strip()
market_size = float(cols[1].text.strip().replace('亿美元', ''))
market_size_data.append({'Year': year, 'Market_Size': market_size})
market_size_df = pd.DataFrame(market_size_data)
# 从某电子元器件交易平台获取芯片价格数据(假设通过数据合作获取CSV文件)
chip_price_data = pd.read_csv('chip_prices.csv')
2.2 数据探索性分析
# 查看全球半导体市场规模数据基本信息
print(market_size_df.info())
# 查看芯片价格数据基本信息
print(chip_price_data.info())
# 分析全球半导体市场规模随时间变化趋势
market_size_df['Year'] = pd.to_numeric(market_size_df['Year'])
plt.figure(figsize=(12, 6))
sns.lineplot(x='Year', y='Market_Size', data=market_size_df)
plt.title('Trend of Global Semiconductor Market Size')
plt.xlabel('Year')
plt.ylabel('Market Size (billion US dollars)')
plt.show()
# 查看不同类型芯片价格分布
plt.figure(figsize=(10, 6))
sns.boxplot(x='Chip_Type', y='Price', data=chip_price_data)
plt.title('Price Distribution of Different Chip Types')
plt.xlabel('Chip Type')
plt.ylabel('Price (US dollars)')
plt.xticks(rotation=45)
plt.show()
2.3 数据清洗
# 全球半导体市场规模数据清洗
# 检查并处理缺失值
market_size_df.dropna(inplace = True)
# 去除重复记录
market_size_df = market_size_df.drop_duplicates()
# 芯片价格数据清洗
# 处理异常价格数据,如价格为负数
chip_price_data = chip_price_data[chip_price_data['Price'] > 0]
# 处理缺失值,对于关键信息缺失的记录可考虑删除
chip_price_data = chip_price_data.dropna(subset=['Chip_Type', 'Price'])