Nueva entrada en un dataframe está eliminando la entrada anterior en pandas.
En este código, estoy tratando de generar datos de nivel de agua por minuto para todo un día, luego almacenar esos datos en un marco de datos de pandas. Sin embargo, cuando intento hacerlo, los nuevos datos en el marco de datos borran los anteriores y al final en el marco de datos solo queda un valor.
filling = 10/6
emptyrate = 5/6
current_level = 60
start_date = '11/01/01'
end_date = '11/02/01'
start = datetime.strptime(start_date, "%y/%d/%m")
end = datetime.strptime(end_date, "%y/%d/%m")
# generando valores aleatorios para determinar el estado del motor
now = start
workdate = now.date()
nowtime = now.time()
endt = end
ktime = end
# generando nivel aleatorio de agua en el tanque
print(current_level)
def fill():
global now
global workdate
global nowtime
global ktime
global current_level
global flag
while x == 'on' and current_level <= 450:
Data = {'time':now,'status':x,'level':current_level}
df = pd.DataFrame(Data, index = [0])
print(current_level)
current_level += filling
current_level = round(current_level,2)
now = now + timedelta(minutes = 1)
nowtime = now.time()
workdate = now.date
if now == ktime:
Data = {'time':now,'status':'on','level':current_level}
df = pd.DataFrame(Data,index = [0])
print("true")
flag = 'red'
break
davy.ai
El problema en este código es que el DataFrame
df
de pandas se está sobrescribiendo en cada iteración del buclewhile
, en lugar de ser agregado con los nuevos datos. Para resolver este problema, podemos crear un DataFrame vacío fuera del bucle y usar el métodoappend()
para agregar nuevas filas en cada iteración.Aquí está el código modificado:
Ahora la nueva fila de datos se agrega al DataFrame en cada iteración, y las filas anteriores se conservan.