Установить состояния для указания включения и выключения с отметкой времениPython

Программы на Python
Ответить
Anonymous
 Установить состояния для указания включения и выключения с отметкой времени

Сообщение Anonymous »

@reactive.calc
def filtered_calderas():
start_date_str = input.inicio()
end_date_str = input.fin()
if not start_date_str or not end_date_str:
return pd.DataFrame(columns=df_calderas.columns)

# formato de los inputs
formato_fecha = "%d-%m-%Y %H:%M"
start_date = pd.to_datetime(start_date_str, format=formato_fecha)
end_date = pd.to_datetime(end_date_str, format=formato_fecha)

condition1 = df_calderas['fecha_inicio'] = start_date

return df_calderas[condition1 & condition2]

def prepare_dataframe(df):
#a esto lo utilizao para cambiar los nombres de las columnas del csv internamente, es como un alias
df.rename(columns={
'Bomba Calor - Temperatura de Aire (°C)': 'temp_aire',
'Bomba Calor - Temperatura Entrada (°C)': 'temp_entrada',
'Bomba Calor - Temperatura Salida (°C)' : 'temp_salida',
'Bomba Calor - Estado Caldera 2 (estado)':'estado_caldera2',
'Bomba Calor - Estado Caldera 1 (estado)': 'estado_caldera1',
'Bomba Calor - Estado Bomba de Calor (estado)': 'estado_bomba_calor'
}, inplace=True, errors='raise') #puedo usar raise tambien, que es mas estricto

if ('timestamp' in df.columns):
df['timestamp'] = pd.to_datetime(df['timestamp'], format="%d-%m-%y %H:%M").astype("datetime64")

df.set_index('timestamp', inplace=True)
df.sort_index(inplace=True) # Ordena el df por el índice cronológicamente, para que no me aparezcan desordeandos
elif ('Fecha' in df.columns and 'Hora' in df.columns):

df['timestamp'] = pd.to_datetime(df['Fecha'] + ' ' + df['Hora'], format="%d-%m-%y %H:%M").astype("datetime64")

df.set_index('timestamp', inplace=True)
df.sort_index(inplace=True) # Ordena el índice cronológicamente, para que no me aparezcan desordeandos
final_columns = [
'temp_aire', 'temp_entrada', 'temp_salida',
'estado_caldera2', 'estado_caldera1', 'estado_bomba_calor'
]

existing_columns = []
for col in final_columns:
if col in df.columns:
existing_columns.append(col)

return df[existing_columns]

это мой CSV
Fecha,Hora,Bomba Calor - Temperatura de Aire (°C),Bomba Calor - Temperatura Entrada (°C),Bomba Calor - Temperatura Salida (°C),Bomba Calor - Estado Caldera 2 (estado),Bomba Calor - Estado Caldera 1 (estado),Bomba Calor - Estado Bomba de Calor (estado)
04-10-25,00:01,22.2,63.4,63.4,0.0,1.0,0.0
04-10-25,00:11,21.9,61.8,61.7,0.0,1.0,1.0
04-10-25,00:21,21.7,60.3,60.3,1.0,1.0,0.0
04-10-25,00:30,22.2,63.4,63.4,1.0,0.0,0.0
04-10-25,00:41,21.9,61.8,61.7,1.0,0.0,1.0
04-10-25,00:51,21.7,60.3,60.3,0.0,1.0,0.0
04-10-25,00:55,22.2,63.4,63.4,0.0,1.0,1.0
04-10-25,01:03,21.9,61.8,61.7,0.0,0.0,1.0
04-10-25,01:10,21.7,60.3,60.3,0.0,0.0,1.0

Привет всем, у меня дилемма. Как видно из CSV-файла, для обозначения того, что котел включен, я использую состояния «включен» (1.0) и «выключен» (0.0). Я хотел бы знать, как я могу использовать это для визуализации диаграммы Ганта (временная шкала) с помощью Plotly.
Это версия, которую я использовал раньше. «x_start» будет серией 1,0, а «x_end» — серией 0,0.
fig = px.timeline(
data_frame=data,
x_start="fecha_inicio",
height=500,
x_end="fecha_fin",
template="simple_white",
y="caldera",
color="caldera",
title="Tiempos de Encendido por Caldera",
category_orders={"caldera": orden_eje_y},
labels={
"fecha_inicio": "Inicio de Operación",
"fecha_fin": "Fin de Operación",
"caldera": "Calderas"
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... -timestamp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»