python - convert - funciones de pandas para leer datos a tablas
Diferencia entre dos fechas en Python (4)
Otra solución corta:
from datetime import date
def diff_dates(date1, date2):
return abs(date2-date1).days
def main():
d1 = date(2013,1,1)
d2 = date(2013,9,13)
result1 = diff_dates(d2, d1)
print ''{} days between {} and {}''.format(result1, d1, d2)
print ("Happy programmer''s day!")
main()
Tengo dos fechas diferentes y quiero saber la diferencia en días entre ellas. El formato de la fecha es AAAA-MM-DD.
Tengo una función que puede AGREGAR o RESCATAR un número dado a una fecha:
def addonDays(a, x):
ret = time.strftime("%Y-%m-%d",time.localtime(time.mktime(time.strptime(a,"%Y-%m-%d"))+x*3600*24+3600))
return ret
donde A es la fecha yx la cantidad de días que deseo agregar. Y el resultado es otra fecha.
Necesito una función donde puedo dar dos fechas y el resultado sería una int con diferencia de fecha en días.
Probé el código publicado por larsmans anteriormente, pero hay un par de problemas:
1) El código como está arrojará el error mencionado por mauguerra 2) Si cambia el código a lo siguiente:
...
d1 = d1.strftime("%Y-%m-%d")
d2 = d2.strftime("%Y-%m-%d")
return abs((d2 - d1).days)
Esto convertirá tus objetos datetime en cadenas pero, dos cosas
1) Intentar hacer d2 - d1 fallará ya que no puede usar el operador menos en las cadenas y 2) Si lee la primera línea de la respuesta anterior que indicó, quiere usar el operador - en dos objetos datetime, pero, solo los convirtió a cuerdas
Lo que encontré es que literalmente solo necesitas lo siguiente:
import datetime
end_date = datetime.datetime.utcnow()
start_date = end_date - datetime.timedelta(days=8)
difference_in_days = abs((end_date - start_date).days)
print difference_in_days
Prueba esto:
data=pd.read_csv(''C:/Users/Desktop/Data Exploration.csv'')
data.head(5)
first=data[''1st Gift'']
last=data[''Last Gift'']
maxi=data[''Largest Gift'']
l_1=np.mean(first)-3*np.std(first)
u_1=np.mean(first)+3*np.std(first)
m=np.abs(data[''1st Gift'']-np.mean(data[''1st Gift'']))>3*np.std(data[''1st Gift''])
pd.value_counts(m)
l=first[m]
data.loc[:,''1st Gift''][m==True]=np.mean(data[''1st Gift''])+3*np.std(data[''1st Gift''])
data[''1st Gift''].head()
m=np.abs(data[''Last Gift'']-np.mean(data[''Last Gift'']))>3*np.std(data[''Last Gift''])
pd.value_counts(m)
l=last[m]
data.loc[:,''Last Gift''][m==True]=np.mean(data[''Last Gift''])+3*np.std(data[''Last Gift''])
data[''Last Gift''].head()
Usar -
para obtener la diferencia entre dos objetos de datetime
y datetime
y tomar el miembro de days
.
from datetime import datetime
def days_between(d1, d2):
d1 = datetime.strptime(d1, "%Y-%m-%d")
d2 = datetime.strptime(d2, "%Y-%m-%d")
return abs((d2 - d1).days)