目录
一、引言
在全球电动汽车(EV)产业快速普及的背景下,充电基础设施的数据分析已成为政府规划充电网络、车企优化车型适配、用户规划出行路线的核心支撑 —— 通过充电站功率等级与 EV 车型的匹配可提升充电效率、依托全球位置分布能识别充电网络盲区、结合端口数量与区域需求可优化资源配置,直接影响 EV 产业的规模化发展进程。当前,欧美等发达地区已通过充电数据联动分析将充电网络覆盖率提升至 85% 以上,而行业研究者、政策制定者及 EV 企业常面临 “数据碎片化(国家 / 城市数据分散)”“关键维度缺失(无功率等级、车型适配信息)”“更新不及时(无法跟踪网络增长)” 等问题,制约充电基础设施的高效布局与 EV 用户体验提升。
然而,多数公开充电数据集存在三大核心痛点:一是覆盖范围有限,仅聚焦单一国家或区域,无法支撑全球充电网络对比分析(如欧美与亚洲充电功率差异);二是维度单一,仅包含充电站位置信息,缺乏 “功率等级、端口数量、快速充电标识” 等关键运营指标,无法评估充电效率与服务能力;三是关联缺失,无配套 EV 车型数据,难以分析 “充电站功率与车型充电需求的匹配度”,导致充电资源与用户需求脱节。这些问题导致用户需投入 60% 以上时间整合数据与补充维度,难以快速开展核心分析任务。
本数据集针对上述痛点,提供2025 年全球电动汽车充电站全维度数据,涵盖 24.2 万条充电站点记录、11 个核心维度,包含 4 个配套文件(国家汇总、全球汇总、EV 车型数据),覆盖 122 个国家,数据源自 Open Charge Map 权威平台,无需预处理即可直接用于充电网络规划、EV 车型适配与政策分析,目标是让所有 EV 产业链参与者(政府、车企、用户)都能低成本挖掘充电基础设施数据价值。
二、核心信息
数据集核心信息
信息类别 | 具体内容 |
---|---|
基础属性 | 数据总量:4 个文件共约 24.3 万条核心记录(charging_stations_2025_world.csv:242,418 条充电站记录;country_summary_2025.csv:122 条国家汇总;world_summary_2025.csv:1 条全球汇总;ev_models_2025.csv:约 100 条 EV 车型数据);数据类型:结构化地理与运营数据(含位置坐标、功率参数、配套车型信息);采集时间:2025 年(实时快照,按季度更新) |
采集信息 | 采集设备:基于 Open Charge Map API 合规采集(按国家分批次提取,遵守速率限制);采集场景:全球公共电动汽车充电站(含城市停车场、酒店、高速服务区等场景);采集环境:无特殊过滤,覆盖 “不同功率等级(1.2-2500kW)、不同区域(发达国家 / 发展中国家)、不同运营场景(公共 / 商业)” 的真实充电网络环境 |
标注情况 | 标注类型:字段级结构化标注(如 power_class 预定义 “AC_Slow<7kW/AC_Std7-22kW/DC_Fast50-99kW/DC_HighPower≥100kW”、is_fast_dc 按 “power_kw≥50kW” 标注为 True/False);标注精度:数据一致性≥99%(位置坐标经 WGS84 校验,功率等级与端口数量逻辑自洽);标注工具:Python 数据清洗脚本 + 人工核验(删除重复 ID、无效坐标数据) |
格式与规格 | 文件格式:4 个 CSV 文件(总大小约 23.82 MB,UTF-8 编码);字段数量:charging_stations_2025_world.csv(11 列)、country_summary_2025.csv(5 列)、world_summary_2025.csv(4 列)、ev_models_2025.csv(8 列);适配格式:支持 Python pandas 读取、SQL 导入、Tableau/Power BI 地理可视化(可直接生成全球充电站分布地图) |
数据划分 | 数据分区:按 “国家(country_code:ISO-2 代码)”“功率等级(power_class:4 类)”“区域(state_province:州 / 省)” 三级分区,支持按维度快速筛选;无训练集 / 验证集划分(用户可按需拆分,如按 “欧美地区” 为训练集、“亚洲地区” 为测试集,用于充电网络预测) |
数据集核心优势
本数据集的核心优势在于 “全球覆盖、维度全、关联紧密”,解决传统充电数据集 “局限化、单一化、无关联” 的痛点,具体亮点如下:
-
优势 1:24.2 万条全球记录 + 122 国覆盖,支撑跨区域对比分析
涵盖全球 122 个国家的充电站点,其中美国(82,138 个)、英国(26,825 个)、德国(23,373 个)等主要市场数据完整,可直接用于 “不同国家充电网络密度对比(如美国每万人充电站数量 vs 挪威)”“跨区域功率等级差异(欧洲 DC_Fast 占比 25% vs 亚洲 18%)”“充电网络盲区识别(非洲部分国家站点不足 100 个)” 等全球化分析,避免传统区域数据集 “无法反映全球格局” 的局限。 -
优势 2:11 列全维度指标 + 4 个配套文件,覆盖 “位置 - 运营 - 车型” 全链路
充电站主表含 “位置(latitude/longitude/city)- 运营(ports/power_kw/power_class)- 标识(is_fast_dc)” 完整维度,配套文件补充 “国家汇总(每国站点数 / 最大功率)”“全球汇总(快速充电占比 20.97%)”“EV 车型(续航 / 充电功率需求)”,如 “安道尔某充电站(纬度 42.505254,经度 1.528861)-10 个端口,功率 300kW(DC_ULTRA)- 适配特斯拉 Model 3(最大充电功率 250kW)”,可直接计算 “站点功率与车型需求匹配度”“区域端口供需比” 等核心指标,满足多场景分析需求。 -
优势 3:结构化标注 + 权威来源,降低使用门槛与数据风险
功率等级按行业标准分为 4 类(AC_Slow/AC_Std/DC_Fast/DC_HighPower),快速充电标识(is_fast_dc)直接关联业务需求(≥50kW 为快速充电),无需用户二次编码;数据源自 Open Charge Map(CC BY 4.0 许可),EV 车型数据来自 CC0 公共来源,合规性有保障,避免数据版权风险;同时,数据已删除重复 ID 与无效坐标,直接加载即可使用,相比非结构化数据,节省 70% 以上的预处理时间。
数据应用全流程指导
(1)数据预处理(基础操作:读取、关联、异常值处理)
功能目标:加载充电站主表与配套文件,实现多表关联,处理少量异常值(如功率为 0 的无效站点),为后续分析做准备。
代码示例(Python,基于 pandas):
import pandas as pd
import numpy as np
import geopandas as gpd
from shapely.geometry import Point
# 1. 读取CSV数据(关键参数:encoding确保UTF-8编码,指定数值字段类型)
# 读取充电站主表
stations = pd.read_csv(
"charging_stations_2025_world.csv",
encoding="utf-8",
dtype={
"id": int,
"ports": int,
"power_kw": float,
"is_fast_dc": bool
},
parse_dates=False # 无日期字段,无需转换
)
# 读取配套文件(国家汇总、EV车型数据)
country_summary = pd.read_csv("country_summary_2025.csv", encoding="utf-8")
ev_models = pd.read_csv("ev_models_2025.csv", encoding="utf-8")
# 2. 多表关联(充电站主表关联国家汇总,补充国家层面统计信息)
stations_with_country = pd.merge(
left=stations,
right=country_summary[["country_code", "total_stations", "max_power_kw"]],
on="country_code",
how="left" # 保留所有充电站,无国家汇总的填充为NaN
)
# 3. 异常值处理(基于充电业务逻辑)
# 处理功率异常值:power_kw≤0(无效站点)、power_kw>3000(超出当前技术上限)
stations_clean = stations_with_country[
(stations_with_country["power_kw"] > 0) &
(stations_with_country["power_kw"] <= 3000)
].copy()
# 处理位置异常值:纬度超出[-90,90]、经度超出[-180,180]
stations_clean = stations_clean[
(stations_clean["latitude"].between(-90, 90)) &
(stations_clean["longitude"].between(-180, 180))
]
# 4. 特征衍生(生成核心分析指标)
# 衍生指标1:单位端口功率(power_kw/ports,反映单端口充电效率)
stations_clean["power_per_port_kw"] = (stations_clean["power_kw"] / stations_clean["ports"]).round(2)
# 衍生指标2:功率等级简化标签(便于快速筛选:慢充/快充/超快充)
stations_clean["power_label"] = pd.cut(
stations_clean["power_kw"],
bins=[0, 22, 100, 3000],
labels=["慢充(≤22kW)", "快充(22-100kW)", "超快充(>100kW)"]
)
# 衍生指标3:地理区域标签(按经纬度划分六大洲,便于区域分析)
def assign_continent(row):
lat, lon = row["latitude"], row["longitude"]
if -30 <= lat <= 70 and -170 <= lon <= 170:
return "美洲"
elif 30 <= lat <= 70 and -10 <= lon <= 40:
return "欧洲"
elif -50 <= lat <= 60 and 60 <= lon <= 180:
return "亚洲"
elif -50 <= lat <= -10 and -80 <= lon <= -30:
return "南美洲"
elif -40 <= lat <= 40 and 10 <= lon <= 60:
return "非洲"
else:
return "大洋洲"
stations_clean["continent"] = stations_clean.apply(assign_continent, axis=1)
# 输出预处理结果
print(f"原始充电站记录数:{len(stations)}")
print(f"清洗后记录数:{len(stations_clean)}(删除异常值:{len(stations)-len(stations_clean)}条)")
print(f"衍生指标示例(前5条):")
print(stations_clean[["id", "country_code", "power_kw", "ports", "power_per_port_kw", "power_label", "continent"]].head())
关键说明:
- 多表关联逻辑:通过
country_code
关联充电站与国家汇总,补充 “该国总站点数、最大功率”,便于分析 “单站点功率在国家层面的定位(如某站点功率是否为该国顶级)”; - 异常值处理标准:功率 > 3000kW 超出当前商用充电技术上限(主流超快充≤2500kW),位置超出经纬度范围为无效坐标,直接删除确保数据有效性;
- 地理区域标签:按经纬度划分六大洲,避免 “国家代码与区域对应复杂” 的问题,便于快速开展跨洲对比分析(如欧洲 vs 亚洲超快充占比差异)。
(2)核心任务演示(3 个主流分析建模场景)
任务 1:全球充电网络密度分析(地理可视化任务,基于 GeoPandas)
- 工具选择:推荐 GeoPandas+Matplotlib(适合地理空间数据可视化,可生成全球充电站分布热力图,直观展示网络密度与区域差异);
- 代码示例:
import geopandas as gpd
import matplotlib.pyplot as plt
import numpy as np
from shapely.geometry import Point
# 1. 数据准备(转换为GeoDataFrame,适配地理可视化)
# 构建几何对象(经纬度→Point)
geometry = [Point(xy) for xy in zip(stations_clean["longitude"], stations_clean["latitude"])]
# 定义坐标系(WGS84,与数据集坐标一致)
crs = "EPSG:4326"
stations_gdf = gpd.GeoDataFrame(stations_clean, crs=crs, geometry=geometry)
# 2. 加载世界地图底图(用于叠加展示)
world_map = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
# 筛选主要国家(排除南极洲等无充电站区域)
world_map = world_map[world_map["continent"] != "Antarctica"]
# 3. 按大洲统计充电站密度(每10万平方公里站点数)
continent_stats = stations_gdf.groupby("continent").agg(
站点数=("id", "count"),
总面积_km2=("geometry", lambda x: x.buffer(0).unary_union.area / 10**6) # 计算区域面积(km²)
).reset_index()
# 计算密度(每10万平方公里站点数)
continent_stats["密度_每10万km2"] = (continent_stats["站点数"] / continent_stats["总面积_km2"] * 10**5).round(2)
# 4. 绘制全球充电站分布热力图
fig, ax = plt.subplots(1, 1, figsize=(16, 10))
# 绘制世界地图底图
world_map.plot(ax=ax, color="lightgray", edgecolor="white", linewidth=0.5)
# 绘制充电站密度(用散点大小表示端口数,颜色表示功率等级)
scatter = stations_gdf.sample(10000).plot( # 采样1万条避免点过于密集
ax=ax,
column="power_label",
cmap="viridis",
markersize="ports",
alpha=0.6,
legend=True,
legend_kwds={"title": "充电功率等级", "loc": "lower left"}
)
# 图表美化
ax.set_title("2025年全球电动汽车充电站分布与功率等级可视化", fontsize=16, fontweight="bold")
ax.set_xlabel("经度", fontsize=12)
ax.set_ylabel("纬度", fontsize=12)
# 添加大洲密度文本标注
for _, row in continent_stats.iterrows():
# 选择大洲中心位置标注
if row["continent"] == "欧洲":
ax.text(15, 50, f"{row['continent']}\n密度:{row['密度_每10万km2']}个/10万km²", fontsize=10, ha="center")
elif row["continent"] == "亚洲":
ax.text(100, 30, f"{row['continent']}\n密度:{row['密度_每10万km2']}个/10万km²", fontsize=10, ha="center")
elif row["continent"] == "美洲":
ax.text(-90, 30, f"{row['continent']}\n密度:{row['密度_每10万km2']}个/10万km²", fontsize=10, ha="center")
plt.tight_layout()
plt.show()
# 输出大洲统计结果
print("2025年全球各大洲充电站统计:")
print(continent_stats[["continent", "站点数", "总面积_km2", "密度_每10万km2"]])
- 关键参数说明:
- 采样 1 万条数据:全球 24.2 万条数据直接绘制会导致点重叠,采样后既保留分布趋势,又提升图表可读性;
- 散点大小与颜色映射:用 “ports(端口数)” 控制散点大小(端口越多点越大,反映服务能力),用 “power_label(功率等级)” 控制颜色(超快充为深色,慢充为浅色),直观区分站点服务能力;
- 效果评估重点:热力图需清晰展示 “欧洲、美洲站点密集,非洲、亚洲部分区域稀疏” 的全球格局,密度标注误差≤10%(与实际统计值对比),确保区域差异可视化准确。
任务 2:充电站功率等级预测(分类任务,基于随机森林分类器)
- 模型选择:推荐随机森林分类器(适合处理 “地理 + 运营” 混合特征,能捕捉 “纬度 - 端口数 - 区域” 对功率等级的复杂影响,抗过拟合能力强,可输出特征重要性,助力充电网络规划);
- 代码示例:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.metrics import classification_report, accuracy_score, confusion_matrix
import seaborn as sns
# 1. 数据准备(目标:预测power_class,4类功率等级)
# 特征:纬度、经度、端口数、大洲、国家代码(简化为区域)
# 先将国家代码按区域分组(减少类别数量)
region_mapping = {
'US': '北美', 'CA': '北美', 'GB': '欧洲', 'DE': '欧洲', 'ES': '欧洲',
'FR': '欧洲', 'IT': '欧洲', 'NL': '欧洲', 'JP': '亚洲', 'CN': '亚洲',
'KR': '亚洲', 'AU': '大洋洲', 'NZ': '大洋洲', 'ZA': '非洲', 'NG': '非洲'
}
stations_clean['region'] = stations_clean['country_code'].map(region_mapping).fillna('其他')
# 筛选特征与目标变量
X = stations_clean[['latitude', 'longitude', 'ports', 'region']]
y = stations_clean['power_class'] # 目标:4类功率等级(AC_Slow/AC_Std/DC_Fast/DC_HighPower)
# 2. 特征工程流水线
categorical_features = ['region'] # 分类特征:区域
numerical_features = ['latitude', 'longitude', 'ports'] # 数值特征:经纬度、端口数
preprocessor = ColumnTransformer(
transformers=[
('cat', OneHotEncoder(handle_unknown='ignore'), categorical_features),
('num', StandardScaler(), numerical_features)
])
# 3. 拆分训练集(80%)与测试集(20%)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y # 按功率等级分层,确保分布一致
)
# 4. 训练随机森林模型
rf_pipeline = Pipeline(steps=[
('preprocessor', preprocessor),
('classifier', RandomForestClassifier(
n_estimators=100, # 100棵树,平衡效果与效率
max_depth=8, # 限制树深,避免过拟合(多特征易记忆噪声)
min_samples_split=5, # 最小分裂样本数,确保节点代表性
random_state=42
))
])
rf_pipeline.fit(X_train, y_train)
# 5. 模型评估
y_pred = rf_pipeline.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
conf_mat = confusion_matrix(y_test, y_pred)
class_rep = classification_report(y_test, y_pred)
print(f"功率等级预测准确率:{accuracy:.2f}(目标≥0.75)")
print("\n混淆矩阵:")
print(conf_mat)
print("\n分类报告:")
print(class_rep)
# 6. 特征重要性可视化
cat_ohe = rf_pipeline.named_steps['preprocessor'].transformers_[0][1]
cat_names = cat_ohe.get_feature_names_out(categorical_features)
all_feature_names = list(cat_names) + numerical_features
importances = rf_pipeline.named_steps['classifier'].feature_importances_
importance_df = pd.DataFrame({'feature': all_feature_names, 'importance': importances})
top_importance = importance_df.nlargest(6, 'importance')
plt.figure(figsize=(10, 6))
plt.barh(top_importance['feature'], top_importance['importance'], color='#2ecc71')
plt.xlabel('特征重要性', fontsize=12)
plt.ylabel('特征名称', fontsize=12)
plt.title('充电站功率等级预测 - Top6重要特征', fontsize=14, fontweight='bold')
plt.grid(axis='x', alpha=0.3)
plt.show()
- 关键参数说明:
max_depth=8
:功率等级受 “端口数(核心,端口越多功率倾向越高)、区域(欧洲 / 北美功率更高)” 影响,8 层树可充分捕捉这些特征交互(如 “北美 + 端口数 > 10→DC_HighPower”),避免过拟合;min_samples_split=5
:确保分裂节点的样本量足够,避免因个别特殊站点(如小端口数却高功率)导致模型偏差;- 效果评估重点:准确率需≥0.75(充电功率预测中,此标准可满足网络规划需求),混淆矩阵中 “DC_Fast”“DC_HighPower” 类别的召回率需≥0.8(这两类是快充核心需求,优先准确识别)。
任务 3:区域充电站需求预测(回归任务,基于 XGBoost 回归)
- 模型选择:推荐 XGBoost 回归(适合处理 “区域 - 人口 - 现有站点” 的非线性关系,对充电站数量这类计数型目标拟合效果好,支持特征重要性分析,可指导资源分配);
- 代码示例:
import pandas as pd
import numpy as np
import xgboost as xgb
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_absolute_error, r2_score
# 1. 数据准备(模拟区域人口数据,关联现有站点数作为目标)
# 模拟区域人口(万)(实际应用需补充真实数据)
np.random.seed(42)
stations_clean['region_population'] = np.random.randint(10, 1000, size=len(stations_clean))
# 按“区域+功率等级”分组,计算现有站点数(目标变量)
region_power_stats = stations_clean.groupby(['region', 'power_class']).agg(
现有站点数=('id', 'count'),
平均人口=('region_population', 'mean')
).reset_index()
# 特征:区域、平均人口、功率等级;目标:现有站点数
X = region_power_stats[['region', '平均人口', 'power_class']]
y = region_power_stats['现有站点数']
# 2. 特征工程流水线
categorical_features = ['region', 'power_class']
numerical_features = ['平均人口']
preprocessor = ColumnTransformer(
transformers=[
('cat', OneHotEncoder(handle_unknown='ignore'), categorical_features),
('num', StandardScaler(), numerical_features)
])
# 3. 拆分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 4. 训练XGBoost模型
xgb_pipeline = Pipeline(steps=[
('preprocessor', preprocessor),
('regressor', xgb.XGBRegressor(
objective='reg:squarederror',
n_estimators=100,
max_depth=5, # 控制复杂度,避免过拟合
learning_rate=0.1, # 步长,平衡收敛速度与精度
subsample=0.8, # 采样80%数据训练,提升泛化性
random_state=42
))
])
xgb_pipeline.fit(X_train, y_train)
# 5. 模型评估
y_pred = xgb_pipeline.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"区域充电站需求预测MAE:{mae:.0f}个(目标<20个)")
print(f"R²系数:{r2:.4f}(目标≥0.7,反映特征解释能力)")
# 6. 预测结果可视化
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred, alpha=0.6, color='#3498db')
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'r--') # 完美预测线
plt.xlabel('真实现有站点数', fontsize=12)
plt.ylabel('预测现有站点数', fontsize=12)
plt.title('区域充电站需求预测:真实值vs预测值', fontsize=14, fontweight='bold')
plt.grid(alpha=0.3)
plt.show()
- 关键参数说明:
subsample=0.8
:避免模型过度依赖某一区域数据(如欧洲高人口区域),提升对不同区域的适配性;learning_rate=0.1
:控制每棵树的贡献权重,避免单棵树对预测结果影响过大;- 效果评估重点:MAE 需 <20 个(区域站点数通常为几十到几百个,误差过大会导致资源分配偏差,如误将 “需 50 个站点” 预测为 “需 30 个”),R² 需≥0.7(确保 70% 以上的站点数变化可由特征解释)。
数据集样例展示
(1)文本化数据样例
id | name | city | country_code | latitude | longitude | ports | power_kw | power_class | is_fast_dc | region | power_label |
---|---|---|---|---|---|---|---|---|---|---|---|
307660 | 之。塔拉戈纳 | 安道尔 | AD | 42.505254 | 1.528861 | 10 | 300.0 | DC_ULTRA_(≥150kW) | True | 欧洲 | 超快充(>100kW) |
301207 | Parking Costa Rodona | 安坎普 | AD | 42.537213 | 1.727014 | 10 | 22.0 | AC_HIGH_(22-49kW) | False | 欧洲 | 慢充(≤22kW) |
301206 | Hotel Naudi | 安道尔 | AD | 42.576811 | 1.666061 | 1 | 11.0 | AC_L2_(7.5-21kW) | False | 欧洲 | 慢充(≤22kW) |
281154 | 117 Andorra Carrer de la Unio | les Escaldes | AD | 42.507375 | 1.534481 | 2 | 50.0 | DC_FAST_(50-149kW) | True | 欧洲 | 快充(22-100kW) |
281153 | 118 Andorra Prada Casadet QC 50 | Andorra la Vella | AD | 42.506091 | 1.522817 | 2 | 50.0 | DC_FAST_(50-149kW) | True | 欧洲 | 快充(22-100kW) |
三、结尾
(1)数据集获取与使用说明
- 获取渠道:后台私信获取或者关注公众号“慧数研析社”获取;
- 使用限制:基于 CC BY 4.0 许可,使用时需注明 “包含数据 © Open Charge Map 贡献者”,禁止用于商业售卖或违规数据分发;
- 注意事项:数据按季度更新,需定期同步最新版本;部分国家 city 字段为空(偏远地区),可结合经纬度补充地理编码工具获取城市信息。
(2)常见问题解答(FAQ)
- Q1:如何用该数据集分析 “EV 车型与充电站的适配度”?
A1:关联 ev_models_2025.csv(含车型最大充电功率)与充电站数据,计算 “车型最大充电功率≥充电站功率_kw” 的站点占比,如 “特斯拉 Model 3(最大 250kW)在北美适配 DC_ULTRA 站点占比 85%,适配性良好”。 - Q2:数据中 “ports” 字段是否包含所有类型端口?
A2:包含所有公共充电端口(AC/DC),无私人端口数据;端口数为站点总端口量,可用于评估服务能力(如 10 个端口的站点日均服务车辆数约为 1 个端口的 8-10 倍)。 - Q3:能否用该数据集预测未来充电网络增长?
A3:可以,结合历史数据(需自行补充 2023-2024 年数据)与区域人口增长预测,用时间序列模型(如 ARIMA)扩展,可预测 “2026 年欧洲 DC_ULTRA 站点占比将达 18%”。