|
@@ -288,31 +288,18 @@ def chrgst_time(data_split): #重新计算前后闲置时长
|
|
|
|
|
|
def chrgdr(data_split): #根据充电信息结果合并相连同状态
|
|
|
chrg=pd.DataFrame()
|
|
|
- if len(data_split)>3:
|
|
|
- if (data_split.loc[0,'data_status']=='charge') & (data_split.loc[2,'data_status']=='stand'):
|
|
|
- chrg=chrg.append(data_split.iloc[:4])
|
|
|
- elif (data_split.loc[0,'data_status']=='charge') & (data_split.loc[2,'data_status']=='drive'):
|
|
|
- chrg=chrg.append(data_split.iloc[:2])
|
|
|
-
|
|
|
- if (data_split.loc[len(data_split)-2,'data_status']=='charge') & (data_split.loc[len(data_split)-3,'data_status']=='stand'):
|
|
|
- chrg=chrg.append(data_split.iloc[len(data_split)-4:])
|
|
|
- elif (data_split.loc[len(data_split)-2,'data_status']=='charge') & (data_split.loc[len(data_split)-3,'data_status']=='drive'):
|
|
|
- chrg=chrg.append(data_split.iloc[len(data_split)-2:])
|
|
|
-
|
|
|
- if len(data_split)>5:
|
|
|
- for k in range(2,len(data_split)-2):
|
|
|
- if (data_split.loc[k,'data_status']=='charge') & (data_split.loc[k-1,'data_status']=='stand') & (data_split.loc[k+2,'data_status']=='stand'):
|
|
|
- chrg=chrg.append(data_split.iloc[k-2:k+4])
|
|
|
- elif (data_split.loc[k,'data_status']=='charge') & (data_split.loc[k-1,'data_status']=='drive') & (data_split.loc[k+2,'data_status']=='stand'):
|
|
|
- chrg=chrg.append(data_split.iloc[k:k+4])
|
|
|
- elif (data_split.loc[k,'data_status']=='charge') & (data_split.loc[k-1,'data_status']=='drive') & (data_split.loc[k+2,'data_status']=='drive'):
|
|
|
- chrg=chrg.append(data_split.iloc[k:k+2])
|
|
|
- elif (data_split.loc[k,'data_status']=='charge') & (data_split.loc[k-1,'data_status']=='stand') & (data_split.loc[k+2,'data_status']=='drive'):
|
|
|
- chrg=chrg.append(data_split.iloc[k-2:k+2])
|
|
|
- else:
|
|
|
- if data_split.loc[0,'data_status'] in ['charge','stand']:
|
|
|
- chrg=chrg.append(data_split.iloc[:2])
|
|
|
+ if data_split.loc[0,'data_status']=='charge':
|
|
|
+ chrg=chrg.append(data_split.iloc[k])
|
|
|
|
|
|
+ for k in range(1,len(data_split)-1):
|
|
|
+ if data_split.loc[k,'data_status']=='charge':
|
|
|
+ if data_split.loc[k-1,'data_status']=='stand':
|
|
|
+ chrg=chrg.append(data_split.iloc[k-2:k+1])
|
|
|
+ else:
|
|
|
+ chrg=chrg.append(data_split.iloc[k])
|
|
|
+ if data_split.loc[k,'data_status']=='stand':
|
|
|
+ if data_split.loc[k-1,'data_status']=='charge':
|
|
|
+ chrg=chrg.append(data_split.iloc[k:k+2])
|
|
|
return chrg
|
|
|
|
|
|
def makedf_chrgdr(df_splice_chrg,data_new): #每个status取所有时间戳的数据
|
|
@@ -392,8 +379,11 @@ def sep_chrg_dr(df_merge,sn,gpscity):
|
|
|
data_sta=city(data_new,gpscity)
|
|
|
data_sta=data_sta.reset_index(drop=True)
|
|
|
data_sta2=gpstemp_new(data_sta)
|
|
|
+ data_sta2.to_csv('data_sta2.csv')
|
|
|
data_split=newsplit(data_sta2)
|
|
|
+ data_split.to_csv('data_split.csv')
|
|
|
data_split=chrgst_time(data_split)
|
|
|
+
|
|
|
chrg=chrgdr(data_split)
|
|
|
return chrg,data_sta2,param
|
|
|
|
|
@@ -423,8 +413,9 @@ def pro_output(df_merge,sn,gpscity,chrg_last):
|
|
|
change=pd.DataFrame()
|
|
|
if len(df_merge)>0:
|
|
|
chrg,data_new,param=sep_chrg_dr(df_merge,sn,gpscity)
|
|
|
+ chrg.to_csv('chrg.csv')
|
|
|
if len(chrg)>0:
|
|
|
- data_sta=mkdf_chrg(chrg,data_new,param)
|
|
|
+ data_sta=mkdf_chrg(chrg, data_new,param)
|
|
|
data_sta.to_csv('data_sta.csv')
|
|
|
new=data_sta.copy()
|
|
|
if len(chrg_last)>0:
|