首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在timeseries数据中提取值并计算timeseries持续时间

在timeseries数据中提取值并计算timeseries持续时间
EN

Stack Overflow用户
提问于 2022-11-14 23:02:09
回答 1查看 81关注 0票数 0

问题陈述:每辆车column_name= ' SOC‘有多个充放电实例,从本专栏中得到两个新的df (ref必需输出),得到最小SoC、每辆车充电周期的最大SOC,以及每辆车在特定一天的每一个排放周期和时间(放电)的最小SoC和最大SoC。

代码语言:javascript
复制
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    Charging
代码语言:javascript
复制
Required 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
代码语言:javascript
复制
Discharging
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
EN

回答 1

Stack Overflow用户

发布于 2022-11-15 06:49:39

问题陈述:

每个车辆列名称=‘SOC’有多个充放电实例,从该列得到两个新的df(Ref-必需输出),其中最小SOC、特定车辆的最大SOC,其中status=充电.Similarly获取最小SOC和最大SOC,以及特定一天内每辆车辆的持续时间(放电)。

代码语言:javascript
复制
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    Charging
代码语言:javascript
复制
Tried 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 purpose
代码语言:javascript
复制
Required 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_SOC
代码语言:javascript
复制
Discharging
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_SOC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74438854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档