{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data=pd.read_excel(\"plclog20230610.xlsx\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(863869, 112)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.shape" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "data.columns=[\"time\",\n", "\"sn\",\n", "\"steps\",\n", "\"status\",\n", "\"x_v\",\n", "\"y_v\",\n", "\"z_v\",\n", "\"r_v\",\n", "\"pause\",\n", "\"x_s\",\n", "\"y_s\",\n", "\"z_s\",\n", "\"r_s\",\n", "\"x1_toque\",\n", "\"x2_toque\",\n", "\"y_toque\",\n", "\"z_toque\",\n", "\"r_toque\",\n", "\"pressure_1\",\n", "\"pressure_2\",\n", "\"pressure_3\",\n", "\"pressure_4\",\n", "\"veh_coarse_position\",\n", "\"emer_stop\",\n", "\"veh_precise_position\",\n", "\"veh_precise_h\",\n", "\"veh_precise_deflect\",\n", "\"low_bat_local\",\n", "\"low_bat_h\",\n", "\"low_bat_seat_h\",\n", "\"trans_house_loc\",\n", "\"trans_house_h\",\n", "\"trans_house_angle\",\n", "\"low_bat_trans_house_loc\",\n", "\"low_bat_add_seat_h\",\n", "\"full_bat_house_loc\",\n", "\"full_bat_local\",\n", "\"full_bat_h\",\n", "\"full_bat_oncar_loc\",\n", "\"lift_from_th_h\",\n", "\"position_sense\",\n", "\"full_house_id\",\n", "\"lock_full_extended\",\n", "\"lock_full_retracted\",\n", "\"seat_all_in\",\n", "\"seat_all_notin\",\n", "\"grating_sensor\",\n", "\"power_exchange_mode\",\n", "\"low_bat_house_id\",\n", "\"change_num\",\n", "\"control_house_id\",\n", "\"base_sensor1\",\n", "\"base_sensor2\",\n", "\"base_sensor3\",\n", "\"base_sensor4\",\n", "\"base_sensor5\",\n", "\"base_sensor6\",\n", "\"base_sensor7\",\n", "\"base_sensor8\",\n", "\"light\",\n", "\"fan1\",\n", "\"fan2\",\n", "\"fan3\",\n", "\"fan4\",\n", "\"station_control_break\",\n", "\"entire_station_break\",\n", "\"error_code1\",\n", "\"error_code2\",\n", "\"error_code3\",\n", "\"error_code4\",\n", "\"error_code5\",\n", "\"error_code6\",\n", "\"error_code7\",\n", "\"error_code8\",\n", "\"error_code9\",\n", "\"error_code10\",\n", "\"h_axis_origin\",\n", "\"lock1_retracted\",\n", "\"pushrod1_extended\",\n", "\"pushrod1_retracted\",\n", "\"pushrod2_extended\",\n", "\"pushrod2_retracted\",\n", "\"pushrod3_extended\",\n", "\"pushrod3_retracted\",\n", "\"pushrod4_extended\",\n", "\"pushrod4_retracted\",\n", "\"lock3_retracted\",\n", "\"lock1_extended\",\n", "\"lift1_inplace\",\n", "\"lock3_extended\",\n", "\"lift2_inplace\",\n", "\"lift3_inplace\",\n", "\"lift4_inplace\",\n", "\"lock4_retracted\",\n", "\"lock4_extended\",\n", "\"lock2_retracted\",\n", "\"lock2_extended\",\n", "\"pixel_x\",\n", "\"pixel_y\",\n", "\"dis_ontime\",\n", "\"dis1_process\",\n", "\"dis2_process\",\n", "\"lift_code_dist\",\n", "\"deflect2\",\n", "\"pushrod2_out_time\",\n", "\"pushrod3_out_time\",\n", "\"pushrod2_in_time\",\n", "\"pushrod3_in_time\",\n", "\"pushrod1_out_time\",\n", "\"pushrod4_out_time\",\n", "\"pushrod1_in_time\",\n", "\"pushrod4_in_time\"]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from sqlalchemy import create_engine\n", "mysql_user = 'root'\n", "mysql_password = 'qx123456'\n", "mysql_host = 'algo-dev-internal.li-ai.com.cn'\n", "mysql_port = 3306\n", "mysql_db = 'aiomp'\n", "\n", "db_engine = create_engine(\"mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8\".format(mysql_user, mysql_password, mysql_host, mysql_port, mysql_db),\n", " pool_recycle=7200,pool_size=2)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "###构建一个函数\n", "###修订增加函数参数\n", "def block_extend_time(data_step_block,upd=4,cored=5,downd=6):\n", " data_step_block.columns=[\"time\",\"change_flag\",\"steps\",\"lock_retracted\",\"lock_extended\"]\n", " exchange_process_list=list(set(data_step_block[\"change_flag\"]))\n", " union_t=pd.DataFrame()\n", " result_f=pd.DataFrame()\n", " result_r=pd.DataFrame()\n", " for change_flag in exchange_process_list:\n", " step_up_last=data_step_block[(data_step_block[\"change_flag\"]==change_flag)&(data_step_block[\"steps\"]==upd)].tail(1)\n", " step_core=data_step_block[(data_step_block[\"change_flag\"]==change_flag)&(data_step_block[\"steps\"]==cored)]\n", " step_down_first=data_step_block[(data_step_block[\"change_flag\"]==change_flag)&(data_step_block[\"steps\"]==downd)]\n", " fulld=pd.concat([step_up_last,step_core,step_down_first],axis=0,ignore_index=True)\n", " act_first=fulld[fulld[\"lock_retracted\"]==1].tail(1)\n", " act_last=fulld[fulld[\"lock_extended\"]==1].head(1)\n", " union=pd.concat([step_up_last,act_first,act_last],axis=0,ignore_index=True)\n", " union_t=pd.concat([union_t,union],axis=0,ignore_index=True)\n", " \n", " union_t[\"time2\"]=union_t[\"time\"].shift(1)\n", " result=union_t.groupby('change_flag').tail(2)\n", " result[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(result[\"time\"])-pd.to_datetime(result[\"time2\"])).dt.total_seconds() \n", "\n", " result_f =result.groupby('change_flag').head(1)\n", " result_f=result_f[['change_flag','steps','time_delta']]\n", " result_f.columns=['change_flag','steps','block_f_time']\n", " result_f[\"steps\"]=cored\n", " result_r =result.groupby('change_flag').tail(1)\n", " result_r=result_r[['change_flag','steps','time_delta']]\n", " result_r.columns=['change_flag','steps','block_r_time']\n", " result_r[\"steps\"]=cored\n", " \n", " return result_f,result_r" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "###构建一个转锁收回函数\n", "\n", "def block_retracted_time(data_step_block,upd=12,cored=13,downd=14):\n", " data_step_block.columns=[\"time\",\"change_flag\",\"steps\",\"lock_retracted\",\"lock_extended\"]\n", " exchange_process_list=list(set(data_step_block[\"change_flag\"]))\n", " union_t=pd.DataFrame()\n", " result_f=pd.DataFrame()\n", " result_r=pd.DataFrame()\n", " \n", " for change_flag in exchange_process_list:\n", " step_up_last=data_step_block[(data_step_block[\"change_flag\"]==change_flag)&(data_step_block[\"steps\"]==upd)].tail(1)\n", " step_core=data_step_block[(data_step_block[\"change_flag\"]==change_flag)&(data_step_block[\"steps\"]==cored)]\n", " step_down_first=data_step_block[(data_step_block[\"change_flag\"]==change_flag)&(data_step_block[\"steps\"]==downd)]\n", " fulld=pd.concat([step_up_last,step_core,step_down_first],axis=0,ignore_index=True)\n", " act_first=fulld[fulld[\"lock_extended\"]==1].tail(1)\n", " act_last=fulld[fulld[\"lock_retracted\"]==1].head(1)\n", " union=pd.concat([step_up_last,act_first,act_last],axis=0,ignore_index=True)\n", " union_t=pd.concat([union_t,union],axis=0,ignore_index=True)\n", " \n", " union_t[\"time2\"]=union_t[\"time\"].shift(1)\n", " result=union_t.groupby('change_flag').tail(2)\n", " result[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(result[\"time\"])-pd.to_datetime(result[\"time2\"])).dt.total_seconds() \n", "\n", " result_f =result.groupby('change_flag').head(1)\n", " result_f=result_f[['change_flag','steps','time_delta']]\n", " result_f.columns=['change_flag','steps','block_f_time']\n", " result_f[\"steps\"]=cored\n", " result_r =result.groupby('change_flag').tail(1)\n", " result_r=result_r[['change_flag','steps','time_delta']]\n", " result_r.columns=['change_flag','steps','block_r_time']\n", " result_r[\"steps\"]=cored\n", " \n", " return result_f,result_r" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def pushrod_extend_time(data_step_pushrod,upd=6,cored=7,downd=8):\n", " data_step_pushrod.columns=[\"time\",\"change_flag\",\"steps\",\"pushrod_retracted\",\"pushrod_extended\"]\n", " exchange_process_list=list(set(data_step_pushrod[\"change_flag\"]))\n", " union_t=pd.DataFrame()\n", " result_f=pd.DataFrame()\n", " result_r=pd.DataFrame()\n", " \n", " for change_flag in exchange_process_list:\n", " step_up_last=data_step_pushrod[(data_step_pushrod[\"change_flag\"]==change_flag)&(data_step_pushrod[\"steps\"]==upd)].tail(1)\n", " step_core=data_step_pushrod[(data_step_pushrod[\"change_flag\"]==change_flag)&(data_step_pushrod[\"steps\"]==cored)]\n", " step_down_first=data_step_pushrod[(data_step_pushrod[\"change_flag\"]==change_flag)&(data_step_pushrod[\"steps\"]==downd)]\n", " fulld=pd.concat([step_up_last,step_core,step_down_first],axis=0,ignore_index=True)\n", " act_first=fulld[fulld[\"pushrod_retracted\"]==1].tail(1)\n", " act_last=fulld[fulld[\"pushrod_extended\"]==1].head(1)\n", " union=pd.concat([step_up_last,act_first,act_last],axis=0,ignore_index=True)\n", " union_t=pd.concat([union_t,union],axis=0,ignore_index=True)\n", " \n", " union_t[\"time2\"]=union_t[\"time\"].shift(1)\n", " result=union_t.groupby('change_flag').tail(2)\n", " result[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(result[\"time\"])-pd.to_datetime(result[\"time2\"])).dt.total_seconds() \n", "\n", " result_f =result.groupby('change_flag').head(1)\n", " result_f=result_f[['change_flag','steps','time_delta']]\n", " result_f.columns=['change_flag','steps','pushrod_f_time']\n", " result_f[\"steps\"]=cored\n", " result_r =result.groupby('change_flag').tail(1)\n", " result_r=result_r[['change_flag','steps','time_delta']]\n", " result_r.columns=['change_flag','steps','pushrod_r_time']\n", " result_r[\"steps\"]=cored\n", " \n", " return result_f,result_r" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def pushrod_retracted_time(data_step_pushrod,upd=10,cored=11,downd=12):\n", " data_step_pushrod.columns=[\"time\",\"change_flag\",\"steps\",\"pushrod_retracted\",\"pushrod_extended\"]\n", " exchange_process_list=list(set(data_step_pushrod[\"change_flag\"]))\n", " union_t=pd.DataFrame()\n", " result_f=pd.DataFrame()\n", " result_r=pd.DataFrame()\n", " \n", " for change_flag in exchange_process_list:\n", " step_up_last=data_step_pushrod[(data_step_pushrod[\"change_flag\"]==change_flag)&(data_step_pushrod[\"steps\"]==upd)].tail(1)\n", " step_core=data_step_pushrod[(data_step_pushrod[\"change_flag\"]==change_flag)&(data_step_pushrod[\"steps\"]==cored)]\n", " step_down_first=data_step_pushrod[(data_step_pushrod[\"change_flag\"]==change_flag)&(data_step_pushrod[\"steps\"]==downd)]\n", " fulld=pd.concat([step_up_last,step_core,step_down_first],axis=0,ignore_index=True)\n", " act_first=fulld[fulld[\"pushrod_extended\"]==1].tail(1)\n", " act_last=fulld[fulld[\"pushrod_retracted\"]==1].head(1)\n", " union=pd.concat([step_up_last,act_first,act_last],axis=0,ignore_index=True)\n", " union_t=pd.concat([union_t,union],axis=0,ignore_index=True)\n", " \n", " union_t[\"time2\"]=union_t[\"time\"].shift(1)\n", " result=union_t.groupby('change_flag').tail(2)\n", " result[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(result[\"time\"])-pd.to_datetime(result[\"time2\"])).dt.total_seconds() \n", "\n", " result_f =result.groupby('change_flag').head(1)\n", " result_f=result_f[['change_flag','steps','time_delta']]\n", " result_f.columns=['change_flag','steps','pushrod_f_time']\n", " result_f[\"steps\"]=cored\n", " result_r =result.groupby('change_flag').tail(1)\n", " result_r=result_r[['change_flag','steps','time_delta']]\n", " result_r.columns=['change_flag','steps','pushrod_r_time']\n", " result_r[\"steps\"]=cored\n", " \n", " return result_f,result_r" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(863869, 112)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.shape" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def plc_base(data):\n", " ##数据清洗\n", " data=data[data[\"x_v\"]!=100]\n", " ##数据分段\n", " data[\"change_status\"]=0\n", " data[\"change_status\"][data[\"steps\"]!=0]=1\n", " data[\"change_flag\"]=(data[\"change_status\"] != data[\"change_status\"].shift(1)).astype(int).cumsum()\n", " data = data.drop('change_status', axis=1) \n", "\n", " #准备状态的情况\n", " data0=data[data[\"steps\"]==0]\n", " data_in=data[data[\"steps\"]!=0] \n", "\n", " ####换电过程的个数\n", " groups=set(data_in[\"change_flag\"])\n", " ##每个换电过程的换电步骤数\n", " ##排除换电为50的步骤\n", " data_in=data_in[data_in[\"steps\"]!=50]\n", " change_steps= data_in.groupby('change_flag')['steps'].nunique()\n", " change_steps=change_steps.reset_index()\n", " ##增加一个字段来区分是否是完整的换电过程,完成的是44\n", " change_steps[\"full_steps\"]=1\n", " change_steps[\"full_steps\"][change_steps[\"steps\"]!=44]=0\n", " ##换电过程的耗时统计\n", " change_time=data_in.groupby(\"change_flag\").apply(lambda x: pd.concat([x.head(1), x.tail(1)]))\n", " change_time_group=change_time.reset_index(drop=True)\n", " change_time_group=change_time_group[['time','steps','change_flag']]\n", " change_time_group[\"time2\"]=change_time_group[\"time\"].shift(1)\n", " change_time_group=change_time_group.groupby('change_flag').tail(1)\n", " change_time_group[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(change_time_group[\"time\"])-pd.to_datetime(change_time_group[\"time2\"])).dt.total_seconds()\n", " ##增加是否超时的标识\n", " change_time_group['timeout']=0\n", " change_time_group['timeout'][change_time_group['time_delta']>310]=1 \n", "\n", " ##按照换电过程和换电步骤统计##后面换电过程和分步骤的以这个为基础表\n", " change_steps_time=data_in.groupby([\"change_flag\",\"steps\"]).apply(lambda x: pd.concat([x.head(1), x.tail(1)]))\n", " change_time_steps=change_steps_time.reset_index(drop=True)\n", " change_time_steps[\"time2\"]=change_time_steps[\"time\"].shift(1)\n", " time_group_steps=change_time_steps.groupby(['change_flag','steps']).tail(1)\n", " time_group_steps[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(time_group_steps[\"time\"])-pd.to_datetime(time_group_steps[\"time2\"])).dt.total_seconds() \n", " ##统计有暂停的过程和步骤\n", " data_pause=data_in[[\"change_flag\",\"steps\"]][data_in[\"pause\"]==1]\n", " pause_result = data_pause.drop_duplicates(['change_flag', 'steps'])\n", " pause_result_steps = pause_result.copy()\n", " pause_result_steps[\"pause_flag\"]=1\n", " ##获取步骤的列表\n", " pause_result_l=pause_result.groupby('change_flag')['steps'].apply(tuple).reset_index()\n", " pause_result_l.columns=[\"change_flag\",\"pause_steps\"]\n", " pause_result_group=pause_result.groupby('change_flag').count()\n", " pause_result_group=pause_result_group.reset_index()\n", " pause_result_group.columns=[\"change_flag\",\"pause_steps_num\"] \n", " \n", "\n", " ##统计有急停的过程和步骤\n", " data_stop=data_in[[\"change_flag\",\"steps\"]][data_in[\"emer_stop\"]==1]\n", " stop_result = data_stop.drop_duplicates(['change_flag', 'steps'])\n", " stop_result_steps=stop_result.copy()\n", " stop_result_steps[\"stop_flag\"]=1\n", " \n", " stop_result_l=stop_result.groupby('change_flag')['steps'].apply(tuple).reset_index()\n", " stop_result_l.columns=[\"change_flag\",\"stop_steps\"]\n", " stop_result_group=stop_result.groupby('change_flag').count()\n", " stop_result_group=stop_result_group.reset_index()\n", " stop_result_group.columns=[\"change_flag\",\"stop_steps_num\"]\n", " \n", " ##统计有故障的过程和步骤\n", " data_fault=data_in[[\"change_flag\",\"steps\"]][data_in[\"status\"]==4]\n", " fault_result = data_fault.drop_duplicates(['change_flag', 'steps'])\n", " error_code1=data_in[[\"change_flag\",\"steps\",\"error_code1\"]][(data_in[\"status\"]==4)&(data_in[\"error_code1\"]!=0)]\n", " error_code1.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code2=data_in[[\"change_flag\",\"steps\",\"error_code2\"]][(data_in[\"status\"]==4)&(data_in[\"error_code2\"]!=0)]\n", " error_code2.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code3=data_in[[\"change_flag\",\"steps\",\"error_code3\"]][(data_in[\"status\"]==4)&(data_in[\"error_code3\"]!=0)]\n", " error_code3.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code4=data_in[[\"change_flag\",\"steps\",\"error_code4\"]][(data_in[\"status\"]==4)&(data_in[\"error_code4\"]!=0)]\n", " error_code4.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code5=data_in[[\"change_flag\",\"steps\",\"error_code5\"]][(data_in[\"status\"]==4)&(data_in[\"error_code5\"]!=0)]\n", " error_code5.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code6=data_in[[\"change_flag\",\"steps\",\"error_code6\"]][(data_in[\"status\"]==4)&(data_in[\"error_code6\"]!=0)]\n", " error_code6.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code7=data_in[[\"change_flag\",\"steps\",\"error_code7\"]][(data_in[\"status\"]==4)&(data_in[\"error_code7\"]!=0)]\n", " error_code7.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code8=data_in[[\"change_flag\",\"steps\",\"error_code8\"]][(data_in[\"status\"]==4)&(data_in[\"error_code8\"]!=0)]\n", " error_code8.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code9=data_in[[\"change_flag\",\"steps\",\"error_code9\"]][(data_in[\"status\"]==4)&(data_in[\"error_code9\"]!=0)]\n", " error_code9.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code10=data_in[[\"change_flag\",\"steps\",\"error_code10\"]][(data_in[\"status\"]==4)&(data_in[\"error_code10\"]!=0)]\n", " error_code10.columns=[\"change_flag\",\"steps\",\"error_code\"]\n", " error_code=pd.concat([error_code1,error_code2,error_code3,error_code4,error_code5,error_code6,error_code7,error_code8,error_code9,error_code10])\n", " error_code[\"error_code\"]=error_code[\"error_code\"].astype('int')\n", " error_code = error_code.drop_duplicates(['change_flag', 'steps','error_code'])\n", " error_code=error_code[error_code[\"error_code\"]!=7000]\n", " error_code=error_code.groupby(['change_flag','steps'])['error_code'].apply(tuple).reset_index()\n", " \n", " \n", " ##后面换电过程和分步骤按这个关联\n", " \n", " fault_result_l=fault_result.groupby('change_flag')['steps'].apply(tuple).reset_index()\n", " fault_result_l.columns=[\"change_flag\",\"fault_steps\"]\n", " error_code_group=error_code[[\"change_flag\",\"error_code\"]].drop_duplicates(['change_flag', 'error_code'])\n", " error_code_group_l=error_code_group.groupby('change_flag')['error_code'].apply(tuple).reset_index()\n", " error_code_group_l.columns=[\"change_flag\",\"error_code\"]\n", " fault_result_group=fault_result.groupby('change_flag').count()\n", " fault_result_group=fault_result_group.reset_index()\n", " fault_result_group.columns=[\"change_flag\",\"fault_steps_num\"]\n", " \n", " ####基于换电过程的指标汇总加工\n", " ###换电过程的基表 change_time_group \n", "\n", " change_time_group=change_time_group[[\"time2\",\"time\",\"time_delta\",\"timeout\",\"change_flag\"]]\n", " change_time_group.columns=[\"c_time_b\",\"c_time_e\",\"c_time_delta\",\"c_time_out\",\"change_flag\"]\n", " ###关联换电步骤数和换电步骤是否完整\n", " group_base=pd.merge(change_time_group,change_steps,on='change_flag',how='left')\n", " group_base.rename(columns={'steps': 'steps_num'}, inplace=True) \n", "\n", " ##关联暂停的信息\n", " group_base=pd.merge(group_base,pause_result_l,on='change_flag',how='left')\n", " group_base=pd.merge(group_base,pause_result_group,on='change_flag',how='left')\n", " ##关联急停信息\n", " group_base=pd.merge(group_base,stop_result_l,on='change_flag',how='left')\n", " group_base=pd.merge(group_base,stop_result_group,on='change_flag',how='left')\n", " ##关联故障信息error_code_group_l\n", " group_base=pd.merge(group_base,fault_result_l,on='change_flag',how='left')\n", " group_base=pd.merge(group_base,error_code_group_l,on='change_flag',how='left')\n", " group_base=pd.merge(group_base,fault_result_group,on='change_flag',how='left')\n", " group_base.to_csv(\"group_base_10.csv\",index=False)\n", " \n", " \n", " ##按照换电过程和步骤加工其他指标\n", " ##4个转锁的分析,转锁相关的步骤\n", " ##第5步,转锁伸出,一共4个转锁,加工反应时间和运动时间\n", " ##取数[4,5,6]\n", " block_step_5=[4,5,6]\n", " data_step_5=data_in[data_in[\"steps\"].isin(block_step_5)]\n", " data_step_5_block1=data_step_5[[\"time\",\"change_flag\",\"steps\",\"lock1_retracted\",\"lock1_extended\"]]\n", " data_step_5_block2=data_step_5[[\"time\",\"change_flag\",\"steps\",\"lock2_retracted\",\"lock2_extended\"]]\n", " data_step_5_block3=data_step_5[[\"time\",\"change_flag\",\"steps\",\"lock3_retracted\",\"lock3_extended\"]]\n", " data_step_5_block4=data_step_5[[\"time\",\"change_flag\",\"steps\",\"lock4_retracted\",\"lock4_extended\"]]\n", " \n", " result_f51,result_r51=block_extend_time(data_step_5_block1)\n", " result_f52,result_r52=block_extend_time(data_step_5_block2)\n", " result_f53,result_r53=block_extend_time(data_step_5_block3)\n", " result_f54,result_r54=block_extend_time(data_step_5_block4) \n", "\n", " ##13步解锁\n", " block_step_13=[12,13,14]\n", " data_step_13=data_in[data_in[\"steps\"].isin(block_step_13)]\n", " data_step_13_block1=data_step_13[[\"time\",\"change_flag\",\"steps\",\"lock1_retracted\",\"lock1_extended\"]]\n", " data_step_13_block2=data_step_13[[\"time\",\"change_flag\",\"steps\",\"lock2_retracted\",\"lock2_extended\"]]\n", " data_step_13_block3=data_step_13[[\"time\",\"change_flag\",\"steps\",\"lock3_retracted\",\"lock3_extended\"]]\n", " data_step_13_block4=data_step_13[[\"time\",\"change_flag\",\"steps\",\"lock4_retracted\",\"lock4_extended\"]]\n", " \n", " \n", " result_f131,result_r131=block_retracted_time(data_step_13_block1)\n", " result_f132,result_r132=block_retracted_time(data_step_13_block2)\n", " result_f133,result_r133=block_retracted_time(data_step_13_block3)\n", " result_f134,result_r134=block_retracted_time(data_step_13_block4)\n", " \n", " \n", " ##19步上锁,27解锁,33 上锁 ,41解锁\n", " ##19步上锁\n", " block_step_19=[18,19,20]\n", " data_step_19=data_in[data_in[\"steps\"].isin(block_step_19)]\n", " data_step_19_block1=data_step_19[[\"time\",\"change_flag\",\"steps\",\"lock1_retracted\",\"lock1_extended\"]]\n", " data_step_19_block2=data_step_19[[\"time\",\"change_flag\",\"steps\",\"lock2_retracted\",\"lock2_extended\"]]\n", " data_step_19_block3=data_step_19[[\"time\",\"change_flag\",\"steps\",\"lock3_retracted\",\"lock3_extended\"]]\n", " data_step_19_block4=data_step_19[[\"time\",\"change_flag\",\"steps\",\"lock4_retracted\",\"lock4_extended\"]] \n", "\n", " result_f191,result_r191=block_extend_time(data_step_19_block1,upd=18,cored=19,downd=20)\n", " result_f192,result_r192=block_extend_time(data_step_19_block2,upd=18,cored=19,downd=20)\n", " result_f193,result_r193=block_extend_time(data_step_19_block3,upd=18,cored=19,downd=20)\n", " result_f194,result_r194=block_extend_time(data_step_19_block4,upd=18,cored=19,downd=20) \n", " \n", "\n", " block_step_27=[26,27,28]\n", " data_step_27=data_in[data_in[\"steps\"].isin(block_step_27)]\n", " data_step_27_block1=data_step_27[[\"time\",\"change_flag\",\"steps\",\"lock1_retracted\",\"lock1_extended\"]]\n", " data_step_27_block2=data_step_27[[\"time\",\"change_flag\",\"steps\",\"lock2_retracted\",\"lock2_extended\"]]\n", " data_step_27_block3=data_step_27[[\"time\",\"change_flag\",\"steps\",\"lock3_retracted\",\"lock3_extended\"]]\n", " data_step_27_block4=data_step_27[[\"time\",\"change_flag\",\"steps\",\"lock4_retracted\",\"lock4_extended\"]]\n", " result_f271,result_r271=block_retracted_time(data_step_27_block1,upd=26,cored=27,downd=28)\n", " result_f272,result_r272=block_retracted_time(data_step_27_block2,upd=26,cored=27,downd=28)\n", " result_f273,result_r273=block_retracted_time(data_step_27_block3,upd=26,cored=27,downd=28)\n", " result_f274,result_r274=block_retracted_time(data_step_27_block4,upd=26,cored=27,downd=28) \n", " \n", "\n", " block_step_33=[32,33,34]\n", " data_step_33=data_in[data_in[\"steps\"].isin(block_step_33)]\n", " data_step_33_block1=data_step_33[[\"time\",\"change_flag\",\"steps\",\"lock1_retracted\",\"lock1_extended\"]]\n", " data_step_33_block2=data_step_33[[\"time\",\"change_flag\",\"steps\",\"lock2_retracted\",\"lock2_extended\"]]\n", " data_step_33_block3=data_step_33[[\"time\",\"change_flag\",\"steps\",\"lock3_retracted\",\"lock3_extended\"]]\n", " data_step_33_block4=data_step_33[[\"time\",\"change_flag\",\"steps\",\"lock4_retracted\",\"lock4_extended\"]]\n", " result_f331,result_r331=block_extend_time(data_step_33_block1,upd=32,cored=33,downd=34)\n", " result_f332,result_r332=block_extend_time(data_step_33_block2,upd=32,cored=33,downd=34)\n", " result_f333,result_r333=block_extend_time(data_step_33_block3,upd=32,cored=33,downd=34)\n", " result_f334,result_r334=block_extend_time(data_step_33_block4,upd=32,cored=33,downd=34) \n", " \n", "\n", " block_step_41=[40,41,42]\n", " data_step_41=data_in[data_in[\"steps\"].isin(block_step_41)]\n", " data_step_41_block1=data_step_41[[\"time\",\"change_flag\",\"steps\",\"lock1_retracted\",\"lock1_extended\"]]\n", " data_step_41_block2=data_step_41[[\"time\",\"change_flag\",\"steps\",\"lock2_retracted\",\"lock2_extended\"]]\n", " data_step_41_block3=data_step_41[[\"time\",\"change_flag\",\"steps\",\"lock3_retracted\",\"lock3_extended\"]]\n", " data_step_41_block4=data_step_41[[\"time\",\"change_flag\",\"steps\",\"lock4_retracted\",\"lock4_extended\"]]\n", " result_f411,result_r411=block_retracted_time(data_step_41_block1,upd=40,cored=41,downd=42)\n", " result_f412,result_r412=block_retracted_time(data_step_41_block2,upd=40,cored=41,downd=42)\n", " result_f413,result_r413=block_retracted_time(data_step_41_block3,upd=40,cored=41,downd=42)\n", " result_f414,result_r414=block_retracted_time(data_step_41_block4,upd=40,cored=41,downd=42)\n", " \n", " \n", " ###推杆的指标,共两个推杆 ,推杆2和推杆3\n", " ###推杆伸出\n", " ###第7步伸出,相关数据\n", " block_step_7=[6,7,8]\n", " data_step_7=data_in[data_in[\"steps\"].isin(block_step_7)]\n", " data_step_7_pushrod2=data_step_7[[\"time\",\"change_flag\",\"steps\",\"pushrod2_retracted\",\"pushrod2_extended\"]]\n", " data_step_7_pushrod3=data_step_7[[\"time\",\"change_flag\",\"steps\",\"pushrod3_retracted\",\"pushrod3_extended\"]] \n", "\n", " ##构建推杆伸出函数 \n", " result_f72,result_r72=pushrod_extend_time(data_step_7_pushrod2)\n", " result_f73,result_r73=pushrod_extend_time(data_step_7_pushrod3)\n", " \n", " ###伸出的步骤还有21,35 \n", "\n", " block_step_21=[20,21,22]\n", " data_step_21=data_in[data_in[\"steps\"].isin(block_step_21)]\n", " data_step_21_pushrod2=data_step_21[[\"time\",\"change_flag\",\"steps\",\"pushrod2_retracted\",\"pushrod2_extended\"]]\n", " data_step_21_pushrod3=data_step_21[[\"time\",\"change_flag\",\"steps\",\"pushrod3_retracted\",\"pushrod3_extended\"]]\n", " result_f212,result_r212=pushrod_extend_time(data_step_21_pushrod2,upd=20,cored=21,downd=22)\n", " result_f213,result_r213=pushrod_extend_time(data_step_21_pushrod3,upd=20,cored=21,downd=22) \n", "\n", " block_step_35=[34,35,36]\n", " data_step_35=data_in[data_in[\"steps\"].isin(block_step_35)]\n", " data_step_35_pushrod2=data_step_35[[\"time\",\"change_flag\",\"steps\",\"pushrod2_retracted\",\"pushrod2_extended\"]]\n", " data_step_35_pushrod3=data_step_35[[\"time\",\"change_flag\",\"steps\",\"pushrod3_retracted\",\"pushrod3_extended\"]]\n", " result_f352,result_r352=pushrod_extend_time(data_step_35_pushrod2,upd=34,cored=35,downd=36)\n", " result_f353,result_r353=pushrod_extend_time(data_step_35_pushrod3,upd=34,cored=35,downd=36) \n", " \n", "\n", " ##构建推杆收回函数,11步为收回 \n", "\n", " block_step_11=[10,11,12]\n", "\n", " \n", " ##推杆收回的步骤还有25,39 \n", " \n", "\n", " block_step_11=[10,11,12]\n", " data_step_11=data_in[data_in[\"steps\"].isin(block_step_11)]\n", " data_step_11_pushrod2=data_step_11[[\"time\",\"change_flag\",\"steps\",\"pushrod2_retracted\",\"pushrod2_extended\"]]\n", " data_step_11_pushrod3=data_step_11[[\"time\",\"change_flag\",\"steps\",\"pushrod3_retracted\",\"pushrod3_extended\"]]\n", " result_f112,result_r112=pushrod_retracted_time(data_step_11_pushrod2,upd=10,cored=11,downd=12)\n", " result_f113,result_r113=pushrod_retracted_time(data_step_11_pushrod3,upd=10,cored=11,downd=12) \n", " \n", "\n", " block_step_25=[24,25,26]\n", " data_step_25=data_in[data_in[\"steps\"].isin(block_step_25)]\n", " data_step_25_pushrod2=data_step_25[[\"time\",\"change_flag\",\"steps\",\"pushrod2_retracted\",\"pushrod2_extended\"]]\n", " data_step_25_pushrod3=data_step_25[[\"time\",\"change_flag\",\"steps\",\"pushrod3_retracted\",\"pushrod3_extended\"]]\n", " result_f252,result_r252=pushrod_retracted_time(data_step_25_pushrod2,upd=24,cored=25,downd=26)\n", " result_f253,result_r253=pushrod_retracted_time(data_step_25_pushrod3,upd=24,cored=25,downd=26) \n", " \n", "\n", " block_step_39=[38,39,40]\n", " data_step_39=data_in[data_in[\"steps\"].isin(block_step_39)]\n", " data_step_39_pushrod2=data_step_39[[\"time\",\"change_flag\",\"steps\",\"pushrod2_retracted\",\"pushrod2_extended\"]]\n", " data_step_39_pushrod3=data_step_39[[\"time\",\"change_flag\",\"steps\",\"pushrod3_retracted\",\"pushrod3_extended\"]]\n", " result_f392,result_r392=pushrod_retracted_time(data_step_39_pushrod2,upd=38,cored=39,downd=40)\n", " result_f393,result_r393=pushrod_retracted_time(data_step_39_pushrod3,upd=38,cored=39,downd=40)\n", " \n", " \n", " ###扭矩、位移、拉力按换电过程和换电步骤汇总,汇总对象为data_in\n", "\n", " data_describe=data_in.groupby(['change_flag','steps']).agg({'x_v':['mean','min','max'],\n", " 'y_v':['mean','min','max'],\n", " 'z_v':['mean','min','max'],\n", " 'r_v':['mean','min','max'],\n", " 'x_s':['mean','min','max'],\n", " 'y_s':['mean','min','max'],\n", " 'z_s':['mean','min','max'],\n", " 'r_s':['mean','min','max'],\n", " 'x1_toque':['mean','min','max'],\n", " 'x2_toque':['mean','min','max'],\n", " 'y_toque':['mean','min','max'],\n", " 'z_toque':['mean','min','max'],\n", " 'r_toque':['mean','min','max'],\n", " 'pressure_1':['mean','min','max'],\n", " 'pressure_2':['mean','min','max'],\n", " 'pressure_3':['mean','min','max'],\n", " 'pressure_4':['mean','min','max'],\n", " 'veh_coarse_position':['mean','min','max'],\n", " 'veh_coarse_position':['mean','min','max'],\n", " 'veh_precise_h':['mean','min','max'],\n", " 'veh_precise_deflect':['mean','min','max'],\n", " 'low_bat_local':['mean','min','max'],\n", " 'low_bat_h':['mean','min','max'],\n", " 'low_bat_seat_h':['mean','min','max'],\n", " 'trans_house_loc':['mean','min','max'],\n", " 'trans_house_h':['mean','min','max'],\n", " 'trans_house_angle':['mean','min','max'],\n", " 'low_bat_trans_house_loc':['mean','min','max'],\n", " 'low_bat_add_seat_h':['mean','min','max'],\n", " 'full_bat_house_loc':['mean','min','max'],\n", " 'full_bat_local':['mean','min','max'],\n", " 'full_bat_h':['mean','min','max'],\n", " 'lift_from_th_h':['mean','min','max'],\n", " 'pixel_x':['mean','min','max'],\n", " 'pixel_y':['mean','min','max'],\n", " 'dis_ontime':['mean','min','max'],\n", " 'dis1_process':['mean','min','max'],\n", " 'dis2_process':['mean','min','max'],\n", " 'lift_code_dist':['mean','min','max']\n", " })\n", " data_describe=data_describe.reset_index() \n", "\n", " columns_names=[\"change_flag\",\n", " \"steps\",\n", " \"x_v_mean\",\n", " \"x_v_min\",\n", " \"x_v_max\",\n", " \"y_v_mean\",\n", " \"y_v_min\",\n", " \"y_v_max\",\n", " \"z_v_mean\",\n", " \"z_v_min\",\n", " \"z_v_max\",\n", " \"r_v_mean\",\n", " \"r_v_min\",\n", " \"r_v_max\",\n", " \"x_s_mean\",\n", " \"x_s_min\",\n", " \"x_s_max\",\n", " \"y_s_mean\",\n", " \"y_s_min\",\n", " \"y_s_max\",\n", " \"z_s_mean\",\n", " \"z_s_min\",\n", " \"z_s_max\",\n", " \"r_s_mean\",\n", " \"r_s_min\",\n", " \"r_s_max\",\n", " \"x1_tq_mean\",\n", " \"x1_tq_min\",\n", " \"x1_tq_max\",\n", " \"x2_tq_mean\",\n", " \"x2_tq_min\",\n", " \"x2_tq_max\",\n", " \"y_tq_mean\",\n", " \"y_tq_min\",\n", " \"y_tq_max\",\n", " \"z_tq_mean\",\n", " \"z_tq_min\",\n", " \"z_tq_max\",\n", " \"r_tq_mean\",\n", " \"r_tq_min\",\n", " \"r_tq_max\",\n", " \"pres_1_mean\",\n", " \"pres_1_min\",\n", " \"pres_1_max\",\n", " \"pres_2_mean\",\n", " \"pres_2_min\",\n", " \"pres_2_max\",\n", " \"pres_3_mean\",\n", " \"pres_3_min\",\n", " \"pres_3_max\",\n", " \"pres_4_mean\",\n", " \"pres_4_min\",\n", " \"pres_4_max\",\n", " \"coarse_pos_mean\",\n", " \"coarse_pos_min\",\n", " \"coarse_pos_max\",\n", " \"precise_pos_mean\",\n", " \"precise_pos_min\",\n", " \"precise_pos_max\",\n", " \"precise_h_mean\",\n", " \"precise_h_min\",\n", " \"precise_h_max\",\n", " \"low_bat_local_mean\",\n", " \"low_bat_local_min\",\n", " \"low_bat_local_max\",\n", " \"low_bat_h_mean\",\n", " \"low_bat_h_min\",\n", " \"low_bat_h_max\",\n", " \"low_bat_outseat_h_mean\",\n", " \"low_bat_outseat_h_min\",\n", " \"low_bat_outseat_h_max\",\n", " \"trans_house_loc_mean\",\n", " \"trans_house_loc_min\",\n", " \"trans_house_loc_max\",\n", " \"trans_house_h_mean\",\n", " \"trans_house_h_min\",\n", " \"trans_house_h_max\",\n", " \"trans_house_angle_mean\",\n", " \"trans_house_angle_min\",\n", " \"trans_house_angle_max\",\n", " \"low_bat_trans_h_loc_mean\",\n", " \"low_bat_trans_h_loc_min\",\n", " \"low_bat_trans_h_loc_max\",\n", " \"low_bat_seat_h_mean\",\n", " \"low_bat_seat_h_min\",\n", " \"low_bat_seat_h_max\",\n", " \"full_bat_house_loc_mean\",\n", " \"full_bat_house_loc_min\",\n", " \"full_bat_house_loc_max\",\n", " \"full_bat_local_mean\",\n", " \"full_bat_local_min\",\n", " \"full_bat_local_max\",\n", " \"full_bat_h_mean\",\n", " \"full_bat_h_min\",\n", " \"full_bat_h_max\",\n", " \"lift_from_th_h_mean\",\n", " \"lift_from_th_h_min\",\n", " \"lift_from_th_h_max\",\n", " \"pixel_x_mean\",\n", " \"pixel_x_min\",\n", " \"pixel_x_max\",\n", " \"pixel_y_mean\",\n", " \"pixel_y_min\",\n", " \"pixel_y_max\",\n", " \"dis_ontime_mean\",\n", " \"dis_ontime_min\",\n", " \"dis_ontime_max\",\n", " \"dis1_process_mean\",\n", " \"dis1_process_min\",\n", " \"dis1_process_max\",\n", " \"dis2_process_mean\",\n", " \"dis2_process_min\",\n", " \"dis2_process_max\",\n", " \"lift_code_dist_mean\",\n", " \"lift_code_dist_min\",\n", " \"lift_code_dist_max\"]\n", "\n", " data_describe.columns=columns_names \n", " \n", " \n", " ###基于换电过程和换电步骤的汇总\n", " ##基表time_group_steps\n", " group_steps_base=time_group_steps[[\"time2\",\"time\",\"time_delta\",\"change_flag\",\"steps\"]]\n", " group_steps_base.columns=[\"step_time_b\",\"step_time_e\",\"step_time\",\"change_flag\",\"steps\"]\n", " ##关联转锁\n", " ##将转锁的数据合并\n", " ##转锁的反应时间\n", " block1_f_union=pd.concat([result_f51,result_f131,result_f191,result_f271,result_f331,result_f411])\n", " block1_f_union.columns=['change_flag','steps','block1_f_time']\n", " block2_f_union=pd.concat([result_f52,result_f132,result_f192,result_f272,result_f332,result_f412])\n", " block2_f_union.columns=['change_flag','steps','block2_f_time']\n", " block3_f_union=pd.concat([result_f53,result_f133,result_f193,result_f273,result_f333,result_f413])\n", " block3_f_union.columns=['change_flag','steps','block3_f_time']\n", " block4_f_union=pd.concat([result_f54,result_f134,result_f194,result_f274,result_f334,result_f414])\n", " block4_f_union.columns=['change_flag','steps','block4_f_time']\n", " block1_r_union=pd.concat([result_r51,result_r131,result_r191,result_r271,result_r331,result_r411])\n", " block1_r_union.columns=['change_flag','steps','block1_r_time']\n", " block2_r_union=pd.concat([result_r52,result_r132,result_r192,result_r272,result_r332,result_r412])\n", " block2_r_union.columns=['change_flag','steps','block2_r_time']\n", " block3_r_union=pd.concat([result_r53,result_r133,result_r193,result_r273,result_r333,result_r413])\n", " block3_r_union.columns=['change_flag','steps','block3_r_time']\n", " block4_r_union=pd.concat([result_r54,result_r134,result_r194,result_r274,result_r334,result_r414])\n", " block4_r_union.columns=['change_flag','steps','block4_r_time']\n", " ###关联转锁的反应时间\n", " group_steps_base=pd.merge(group_steps_base,block1_f_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,block2_f_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,block3_f_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,block4_f_union,on=['change_flag','steps'],how='left') \n", "\n", " ##关联运动时间\n", " group_steps_base=pd.merge(group_steps_base,block1_r_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,block2_r_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,block3_r_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,block4_r_union,on=['change_flag','steps'],how='left')\n", " \n", " \n", " \n", " ###关联推杆\n", "\n", " pushrod2_f_union=pd.concat([result_f72,result_f112,result_f212,result_f252,result_f352,result_f392])\n", " pushrod2_f_union.columns=['change_flag','steps','pushrod2_f_time']\n", " pushrod3_f_union=pd.concat([result_f73,result_f113,result_f213,result_f253,result_f353,result_f393])\n", " pushrod3_f_union.columns=['change_flag','steps','pushrod3_f_time']\n", " pushrod2_r_union=pd.concat([result_r72,result_r112,result_r212,result_r252,result_r352,result_r392])\n", " pushrod2_r_union.columns=['change_flag','steps','pushrod2_r_time']\n", " pushrod3_r_union=pd.concat([result_r73,result_r113,result_r213,result_r253,result_r353,result_r393])\n", " pushrod3_r_union.columns=['change_flag','steps','pushrod3_r_time'] \n", " \n", "\n", " ##关联推杆反应时间 \n", "\n", " group_steps_base=pd.merge(group_steps_base,pushrod2_f_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,pushrod3_f_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,pushrod2_r_union,on=['change_flag','steps'],how='left')\n", " group_steps_base=pd.merge(group_steps_base,pushrod3_r_union,on=['change_flag','steps'],how='left') \n", " \n", "\n", " ##关联故障码 \n", "\n", " group_steps_base=pd.merge(group_steps_base,error_code,on=['change_flag','steps'],how='left') \n", " \n", " \n", " ##关联暂停\n", " \n", " group_steps_base=pd.merge(group_steps_base,pause_result_steps,on=['change_flag','steps'],how='left') \n", " \n", " ##关联急停\n", " \n", " group_steps_base=pd.merge(group_steps_base,stop_result_steps,on=['change_flag','steps'],how='left') \n", " \n", "\n", " ##关联其他指标 \n", "\n", " group_steps_base=pd.merge(group_steps_base,data_describe,on=['change_flag','steps'],how='left')\n", " return group_steps_base,group_base\n", " \n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_1615896/4087150809.py:5: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " data[\"change_status\"]=0\n", "/tmp/ipykernel_1615896/4087150809.py:6: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " data[\"change_status\"][data[\"steps\"]!=0]=1\n", "/opt/module/anaconda2022-10/envs/py3916/lib/python3.9/site-packages/pandas/core/generic.py:8870: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " return self._update_inplace(result)\n", "/tmp/ipykernel_1615896/4087150809.py:7: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " data[\"change_flag\"]=(data[\"change_status\"] != data[\"change_status\"].shift(1)).astype(int).cumsum()\n", "/tmp/ipykernel_1615896/4087150809.py:33: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " change_time_group['timeout'][change_time_group['time_delta']>310]=1\n", "/tmp/ipykernel_1615896/4087150809.py:40: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " time_group_steps[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(time_group_steps[\"time\"])-pd.to_datetime(time_group_steps[\"time2\"])).dt.total_seconds()\n", "/tmp/ipykernel_1615896/3684299633.py:21: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " result[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(result[\"time\"])-pd.to_datetime(result[\"time2\"])).dt.total_seconds()\n", "/tmp/ipykernel_1615896/95875243.py:22: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " result[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(result[\"time\"])-pd.to_datetime(result[\"time2\"])).dt.total_seconds()\n", "/tmp/ipykernel_1615896/4221840794.py:20: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " result[\"time_delta\"]=pd.to_timedelta(pd.to_datetime(result[\"time\"])-pd.to_datetime(result[\"time2\"])).dt.total_seconds()\n" ] } ], "source": [ "group_steps_base,group_base=plc_base(data)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "group_steps_base[\"error_code\"]=group_steps_base[\"error_code\"].astype(str)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "group_steps_base[\"time_date\"]=pd.to_datetime(group_steps_base[\"step_time_b\"]).dt.date" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "group_steps_base.to_sql(\"plc_health_base\",con=db_engine, if_exists=\"append\",index=False)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "group_base[\"error_code\"]=group_base[\"error_code\"].astype(str)\n", "group_base[\"pause_steps\"]=group_base[\"pause_steps\"].astype(str)\n", "group_base[\"stop_steps\"]=group_base[\"stop_steps\"].astype(str)\n", "group_base[\"time_date\"]=pd.to_datetime(group_base[\"c_time_b\"]).dt.date" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "group_base.to_sql(\"plc_health_group_base\",con=db_engine, if_exists=\"append\",index=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "py3916", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.16" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }