Nuestro grupo de expertos despúes de ciertos días de trabajo y de recopilar de datos, encontramos los datos necesarios, deseamos que resulte útil para ti en tu plan.
Solución:
Solución
podrías usar datetime.datetime
junto con .apply()
.
import datetime
d = datetime.datetime(2020, 5, 17)
date = d.date()
Para pandas.to_datetime(df)
Parece que tu código está bien. Ver pandas.to_datetime
documentación y ¿Cómo convertir columnas en una columna de fecha y hora en pandas?
df = pd.DataFrame('year': [2015, 2016],
'month': [2, 3],
'day': [4, 5])
pd.to_datetime(df[["year", "month", "day"]])
Producción:
0 2015-02-04
1 2016-03-05
dtype: datetime64[ns]
¿Qué sucede si sus columnas AÑO, MES y DÍA tienen encabezados diferentes?
Digamos que sus columnas AÑO, MES y DÍA están etiquetadas como yy
, mm
y dd
respectivamente. Y prefiere mantener los nombres de sus columnas sin cambios. En ese caso podrías hacerlo de la siguiente manera.
import pandas as pd
df = pd.DataFrame('yy': [2015, 2016],
'mm': [2, 3],
'dd': [4, 5])
df2 = df[["yy", "mm", "dd"]].copy()
df2.columns = ["year", "month", "day"]
pd.to_datetime(df2)
Producción:
0 2015-02-04
1 2016-03-05
dtype: datetime64[ns]
Deberías usar el apply
método de la siguiente manera:
from datetime import datetime
df['myDt'] = df.apply(lambda row: datetime.strptime(f"int(row.year)-int(row.month)-int(row.day)", '%Y-%m-%d'), axis=1)
Ejemplo de ejecución:
>>> d = 'year': list(range(2015, 2020)), 'month': list(range(5, 10)), 'day': >> list(range(20, 25))
>> df = pd.DataFrame(d)
>> df
year month day myDt
0 2015 5 20 2015-05-20
1 2016 6 21 2016-06-21
2 2017 7 22 2017-07-22
3 2018 8 23 2018-08-23
4 2019 9 24 2019-09-24
Aquí hay dos líneas:
df['dateInt']=df['year'].astype(str) + df['month'].astype(str).str.zfill(2)+ df['day'].astype(str).str.zfill(2)
df['Date'] = pd.to_datetime(df['dateInt'], format='%Y%m%d')
Producción
year month day dateInt Date
0 2015 5 20 20150520 2015-05-20
1 2016 6 21 20160621 2016-06-21
2 2017 7 22 20170722 2017-07-22
3 2018 8 23 20180823 2018-08-23
4 2019 9 24 20190924 2019-09-24
Tienes la opción de añadir valor a nuestra información participando con tu experiencia en las interpretaciones.