You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算电动汽车充电桩数据中的充电会话数及平均充电量?

解决方案

1. 生成充电会话分组标识

先给每一段连续的充电/非充电状态分配唯一分组ID,用shift()和cumsum()实现:

evdata['session_id'] = (evdata['Charging?'] != evdata['Charging?'].shift()).cumsum()

2. 提取每个充电会话的总充电量

筛选出充电状态(Charging?=1)的数据,按session_id分组后取Cumulative Energy (kWh)的最大值——这就是该会话的总充电量(因为充电过程中累计电量持续增加,直到结束重置为0):

charging_sessions = evdata[evdata['Charging?'] == 1].groupby('session_id')['Cumulative Energy (kWh)'].max().reset_index()

3. 计算目标指标

从处理后的结果中直接统计总会话数和平均充电量:

# 总充电会话数
total_sessions = len(charging_sessions)

# 每次会话平均充电量
avg_charge_per_session = charging_sessions['Cumulative Energy (kWh)'].mean()

print(f"总充电会话数: {total_sessions}")
print(f"每次会话平均充电量: {avg_charge_per_session:.2f} kWh")

完整代码示例

import pandas as pd

# 假设数据已加载到evdata DataFrame中
# evdata = pd.read_csv('your_dataset.csv')

# 生成会话ID
evdata['session_id'] = (evdata['Charging?'] != evdata['Charging?'].shift()).cumsum()

# 提取充电会话的总充电量
charging_sessions = evdata[evdata['Charging?'] == 1].groupby('session_id')['Cumulative Energy (kWh)'].max().reset_index()

# 计算并输出结果
total_sessions = len(charging_sessions)
avg_charge = charging_sessions['Cumulative Energy (kWh)'].mean()

print(f"总充电会话数: {total_sessions}")
print(f"平均每次充电量: {avg_charge:.2f} kWh")

内容的提问来源于stack exchange,提问作者frenkiedejong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:55:16