问题陈述:每辆车column_name= ' SOC‘有多个充放电实例,从本专栏中得到两个新的df (ref必需输出),得到最小SoC、每辆车充电周期的最大SOC,以及每辆车在特定一天的每一个排放周期和时间(放电)的最小SoC和最大SoC。
df1
Date Time vehicle_no soc SOC Diff
0 2022-10-01 02:27:56 DL21GD0100 80.0 0
1 2022-10-01 02:28:26 DL21GD0100 80.0 Discharging
2 2022-10-01 02:28:56 DL21GD0100 80.0 Discharging
3 2022-10-01 02:29:26 DL21GD0100 80.0 Discharging
4 2022-10-01 02:29:56 DL21GD0100 69.0 Discharging
5 2022-10-01 02:29:56 DL21GD0100 70.0 Charging
6 2022-10-01 02:30:56 DL21GD0100 71.0 Charging
7 2022-10-01 02:32:56 DL21GD0100 72.0 Charging
8 2022-10-01 03:16:00 DL21GD0100 63.0 Discharging
9 2022-10-01 04:16:30 DL21GD0100 23.0 Discharging
10 2022-10-01 04:16:30 DL21GD0100 24.0 Charging
11 2022-10-01 04:17:00 DL21GD0100 54.0 Charging
12 2022-10-01 09:17:30 WB25M9298 24.0 Charging
13 2022-10-01 10:21:00 WB25M9298 57.0 ChargingRequired output
Charging
Date Vehicle_no Min_Soc Max_SOC Time_Dur Total
(hh:mm:ss) Consumed_Soc
2022-10-01 DL21GD0100 70.0 72.0 00:03:00 23.0
2022-10-01 DL21GD0100 23.0 54.0 01:01:00 21.0
2022-10-01 WB25M9298 24.0 57.0 01:03:30 33.0Discharging
SL.No Date Vehicle_no Max_Soc Max_SOC Time_dur Total
(hh:mm:ss) Soc_Disch
1 2022-10-01 DL21GD0100 80.0 69.0 00:02:00 11.0
2 2022-10-01 DL21GD0100 63.0 23.0 01:00:00 40.0发布于 2022-11-15 06:49:39
问题陈述:
每个车辆列名称=‘SOC’有多个充放电实例,从该列得到两个新的df(Ref-必需输出),其中最小SOC、特定车辆的最大SOC,其中status=充电.Similarly获取最小SOC和最大SOC,以及特定一天内每辆车辆的持续时间(放电)。
df1
Date Time vehicle_no soc SOC Diff
0 2022-10-01 02:27:56 DL21GD0100 80.0 0
1 2022-10-01 02:28:26 DL21GD0100 80.0 Discharging
2 2022-10-01 02:28:56 DL21GD0100 80.0 Discharging
3 2022-10-01 02:29:26 DL21GD0100 80.0 Discharging
4 2022-10-01 02:29:56 DL21GD0100 69.0 Discharging
5 2022-10-01 02:29:56 DL21GD0100 70.0 Charging
6 2022-10-01 02:30:56 DL21GD0100 71.0 Charging
7 2022-10-01 02:32:56 DL21GD0100 72.0 Charging
8 2022-10-01 03:16:00 DL21GD0100 63.0 Discharging
9 2022-10-01 04:16:30 DL21GD0100 23.0 Discharging
10 2022-10-01 04:17:00 DL21GD0100 54.0 Charging
11 2022-10-01 09:17:30 WB25M9298 24.0 Charging
12 2022-10-01 10:21:00 WB25M9298 57.0 ChargingTried this
#From the Soc Data identify the Min and Max Soc
#Set your range
range_min=0
range_max=100
#define the functions to be applied
#evaluate if soc is low
def eval_low(soc):
if soc <= range_min:
return soc
else:
return 0
#evaluate if soc is high
def eval_high(soc):
if soc >= range_max:
return soc
else:
return 0
#evaluate the functions in a new column
df2['Min_soc']=df2.soc.apply(eval_low)
df2['Max_soc']=df2.soc.apply(eval_high)
Doesn't serve the purposeRequired output
Charging
Date Vehicle_no Min_Soc Max_SOC Time_Dur Total
(hh:mm:ss) Consumed_Soc
2022-10-01 DL21GD0100 70.0 72.0 00:03:00 23.0
2022-10-01 DL21GD0100 23.0 54.0 01:01:00 21.0
2022-10-01 WB25M9298 24.0 57.0 01:03:30 33.0
Where Time Duration for charging= time at Max_Soc- time at Min_SOCDischarging
SL.No Date Vehicle_no Max_Soc Max_SOC Time_dur Total
(hh:mm:ss) Soc_Disch
1 2022-10-01 DL21GD0100 80.0 69.0 00:02:00 11.0
2 2022-10-01 DL21GD0100 63.0 23.0 01:00:00 40.0
Where Time Duration for discharging= time at Max_Soc- time at Min_SOChttps://stackoverflow.com/questions/74438854
复制相似问题