import sys
from LIB.BACKEND import DBManager
from LIB.MIDDLE.OutlierDetection.VoltOutlier.V_1_0_0 import sta
import pymysql
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
host='rm-bp10j10qy42bzy0q7.mysql.rds.aliyuncs.com'
port=3306
db='qixiang_oss'
user='qixiang_oss'
password='Qixiang2021'
conn = pymysql.connect(host=host, port=port, user=user, password=password, database=db)
cursor = conn.cursor()
cursor.execute("select sn, imei, add_time from app_device")
res = cursor.fetchall()
df_sn = pd.DataFrame(res, columns=['sn', 'imei', 'add_time'])
df_sn = df_sn.reset_index(drop=True)
conn.close();
window = 50
step = 10
window2 = 5
step2 = 3
volt_column = ['单体电压1', '单体电压2',
'单体电压3', '单体电压4','单体电压5', '单体电压6','单体电压7', '单体电压8','单体电压9', '单体电压10', '单体电压11', '单体电压12',
'单体电压13', '单体电压14','单体电压15', '单体电压16','单体电压17', '单体电压18','单体电压19', '单体电压20']
columns = ['时间戳', '单体电压1', '单体电压2','单体电压3', '单体电压4','单体电压5', '单体电压6','单体电压7', '单体电压8','单体电压9', '单体电压10', '单体电压11', '单体电压12',
'单体电压13', '单体电压14','单体电压15', '单体电压16','单体电压17', '单体电压18','单体电压19', '单体电压20']
dbManager = DBManager.DBManager()
all_result = pd.DataFrame(columns=['sn', 'suptype', 'type', 'num', 'alarm_time'])
for sn in df_sn['sn'].tolist()[0:3]:
st = '2021-10-30 00:00:00'
et = '2021-10-31 00:00:00'
df_data = dbManager.get_data(sn=sn, start_time=st, end_time=et, data_groups=['bms'])
df_bms = df_data['bms']
df_ori = df_bms[columns]
df_ori.rename(columns = {'时间戳':'time'}, inplace=True)
df = df_ori.drop_duplicates(subset=['time'])
df = df.reset_index(drop=True)
df_result_1,time_list_1 = sta.cal_voltdiff_uniform(df,volt_column, window=window, step=step, window2=window2, step2=step2)
df_result_2,time_list_2 = sta.cal_volt_uniform(df,volt_column, window=window, step=step)
df_result_1['time'] = time_list_1
df_result_2['time'] = time_list_2
df_all_result = sta.instorage(sn, df_result_1, df_result_2)
break
### start to get data PK504B10100004341 from 2021-10-30 00:00:00 to 2021-10-31 00:00:00
# get data from 2021-10-30 00:00:00 to 2021-10-31 00:00:00.........
all data-getting done, bms_count is 3754, gps_count is 0, system_count is 0, accum_count is 0
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py:4441: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
return super().rename(
[1;31m---------------------------------------------------------------------------[0m
[1;31mTypeError[0m Traceback (most recent call last)
[1;32m<ipython-input-1-8edc7c0a33b7>[0m in [0;36m<module>[1;34m[0m
[0;32m 82[0m [1;33m[0m[0m
[0;32m 83[0m [1;31m# 记录偏差超过3的电芯编号[0m[1;33m[0m[1;33m[0m[1;33m[0m[0m
[1;32m---> 84[1;33m [0mdf_all_result[0m [1;33m=[0m [0msta[0m[1;33m.[0m[0minstorage[0m[1;33m([0m[0msn[0m[1;33m,[0m [0mdf_result_1[0m[1;33m,[0m [0mdf_result_2[0m[1;33m)[0m[1;33m[0m[1;33m[0m[0m
[0m[0;32m 85[0m [1;33m[0m[0m
[0;32m 86[0m [1;31m# all_result = pd.concat([all_result, alarm_result])[0m[1;33m[0m[1;33m[0m[1;33m[0m[0m
[1;32mD:\WORK\QX\PROJECT\data_analyze_platform\LIB\MIDDLE\OutlierDetection\VoltOutlier\V_1_0_0\sta.py[0m in [0;36minstorage[1;34m(sn, df_voltdiff_result, df_volt_result)[0m
[0;32m 112[0m [0mtime_list[0m [1;33m=[0m [1;33m[[0m[1;33m][0m[1;33m[0m[1;33m[0m[0m
[0;32m 113[0m [0mtype_list[0m [1;33m=[0m [1;33m[[0m[1;33m][0m[1;33m[0m[1;33m[0m[0m
[1;32m--> 114[1;33m [0mdf_result[0m [1;33m=[0m [0mdf_voltdiff_result[0m[1;33m.[0m[0mcopy[0m[1;33m([0m[1;33m)[0m[1;33m.[0m[0mdrop[0m[1;33m([0m[0mcolumn[0m[1;33m=[0m[1;34m'time'[0m[1;33m)[0m[1;33m[0m[1;33m[0m[0m
[0m[0;32m 115[0m [0mtime_list_1[0m [1;33m=[0m [0mdf_voltdiff_result[0m[1;33m[[0m[1;34m'time'[0m[1;33m][0m[1;33m[0m[1;33m[0m[0m
[0;32m 116[0m [0mdf_result[0m [1;33m=[0m [0mdf_result[0m[1;33m[[0m[1;33m([0m[0mdf_result[0m[1;33m>[0m[1;36m3[0m[1;33m)[0m [1;33m|[0m [1;33m([0m[0mdf_result[0m[1;33m<[0m[1;33m-[0m[1;36m3[0m[1;33m)[0m[1;33m][0m[1;33m.[0m[0mdropna[0m[1;33m([0m[0maxis[0m[1;33m=[0m[1;36m0[0m[1;33m,[0m [0mhow[0m[1;33m=[0m[1;34m'all'[0m[1;33m)[0m[1;33m.[0m[0mdropna[0m[1;33m([0m[0maxis[0m[1;33m=[0m[1;36m1[0m[1;33m,[0m [0mhow[0m[1;33m=[0m[1;34m'all'[0m[1;33m)[0m[1;33m[0m[1;33m[0m[0m
[1;31mTypeError[0m: drop() got an unexpected keyword argument 'column'