Cambiar valores dataframe
Publicado por Felipe (2 intervenciones) el 19/03/2021 10:53:38
Buenos días, quería cambiar los valores de un dataframe, dependiendo del valor de la fila anterior.
El caso es que hago un bucle, y las operaciones que corresponden pero no me sustituye el valor del dataframe, o me sustituye todos los valores por el último que se asigna.
No se que hago mal para realizar la asignación, a ver si alguien puede echarme una mano.
El caso es que hago un bucle, y las operaciones que corresponden pero no me sustituye el valor del dataframe, o me sustituye todos los valores por el último que se asigna.
No se que hago mal para realizar la asignación, a ver si alguien puede echarme una mano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
def sumar_dia(fecha):
print("--------> sumar_dia")
formato = "%d/%m/%Y"
f1 = datetime.strptime(fecha, formato)
one_day = timedelta(days=1)
resultado = f1 + one_day
print("<-------- sumar_dia ---- " + str(resultado))
return str(resultado.strftime('%d/%m/%Y'))
df["Dia"]=""
for i in range(0, len(df)-1):
row1 = df.iloc[i]
row2 = df.iloc[i+1]
#SI ES LA PRIMERA FILA, LA FECHA ES UNO DE ENERO
if (i==0):
print("******************** I es 0 ")
df["Dia"] = "01/01/2017"
#Si la hora de la fila siguiente es mayor entonce seguimos en el mismo día, sino cambiamos de dia
else:
if row2["Hora Solicitud"] >= row1["Hora Solicitud"]:
print("******************** Hora Solicitud ] >= row1[Hora Solicitud]")
df["Dia"] = row1["Dia"]
else:
print("*************SUMAMOS UNO AL DIA")
dia = row1["Dia"]
print(dia)
df.loc[i,"Dia"] = sumar_dia(dia)
Valora esta pregunta


0