Advertisement
korenizla

temp

Feb 20th, 2023
828
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.50 KB | None | 0 0
  1. df_arc = df_arc[df_arc['Реактивная мощность'] > 0] # избавимся от аномалий в df_arc
  2. df_temp = df_temp[df_temp['Температура'] > 1500] # и в df_temp
  3.  
  4. # генерируем новые признаки для модели
  5. # Полная мощность = √ (Активная мощность2 + Реактивная мощность2)
  6. df_arc['Полная мощность'] = ((df_arc['Активная мощность']**2) + (df_arc['Реактивная мощность'])**2)**0.5
  7. # Коэффицент мощности = Активная мощность / Полная мощность
  8. df_arc['Коэффицент мощности'] = df_arc['Активная мощность'] / df_arc['Полная мощность']
  9. df_arc.head(10)
  10.  
  11. # df_arc.iloc[:, 1:2] = df_arc.iloc[:, 1:2].apply(pd.to_datetime)
  12. time_heating = (pd.to_datetime(df_arc['Конец нагрева дугой']) - \
  13.                 pd.to_datetime(df_arc['Начало нагрева дугой'])).dt.total_seconds()
  14. df_arc.insert(3, 'Время нагрева дуги', time_heating)
  15.  
  16. df_arc = df_arc.drop(['Начало нагрева дугой', 'Конец нагрева дугой'], axis=1) # избавляемся от колонок, которые нам
  17.                                                                               # не понадобятся
  18.  
  19. df_arc_ = df_arc.groupby(['key']).agg({'Время нагрева дуги':'sum',
  20.                                        'Активная мощность':'sum',
  21.                                       'Реактивная мощность':'sum',
  22.                                       'Полная мощность':'sum',
  23.                                       'Коэффицент мощности':'mean'})
  24. df_arc_ = df_arc_.reset_index()
  25.  
  26. df_temp['Время замера'] = pd.to_datetime(df_temp['Время замера'], format = '%Y-%m-%dT%H:%M:%S') # переводим в нужный формат, чтобы создать сводную таблицу
  27. df_temp_last = df_temp.groupby(['key']).agg('max')['Время замера'] # с последней температурой
  28. df_temp_last = pd.DataFrame(df_temp_last)
  29. df_temp_last = df_temp_last.merge(df_temp, on='Время замера', how='left')
  30. df_temp_last.set_axis(['Time_last','key','Temp_last'], axis = 'columns', inplace = True)
  31.  
  32. df_temp_first = df_temp.groupby('key').agg('min')['Время замера'] # сводную таблицу с первой температурой
  33. df_temp_first = pd.DataFrame(df_temp_first)
  34. df_temp_first = df_temp_first.merge(df_temp, on='Время замера', how='left')
  35. df_temp_first.set_axis(['Time_first','key','Temp_first'], axis = 'columns', inplace = True)
  36.  
  37. df_temp_ = df_temp_first.merge(df_temp_last, on='key', how='left')\
  38.                   .reindex(columns=['key', 'Time_first', 'Temp_first', 'Time_last', 'Temp_last']) # объединяем таблицы
  39.  
  40. df_temp_.info()
  41.  
  42. <class 'pandas.core.frame.DataFrame'>
  43. Int64Index: 3215 entries, 0 to 3214
  44. Data columns (total 5 columns):
  45.  #   Column      Non-Null Count  Dtype        
  46. ---  ------      --------------  -----        
  47.  0   key         3215 non-null   int64        
  48.  1   Time_first  3215 non-null   datetime64[ns]
  49.  2   Temp_first  3215 non-null   float64      
  50.  3   Time_last   3215 non-null   datetime64[ns]
  51.  4   Temp_last   3215 non-null   float64      
  52. dtypes: datetime64[ns](2), float64(2), int64(1)
  53. memory usage: 150.7 KB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement