Как преобразовать весь этот столбец в формат даты? - PullRequest
1 голос
/ 12 июля 2020

Я пробовал удалить ненужные символы, но это не работает

Актуальные данные

from datetime import datetime

dates = []

for i in data.Date:
    date_time_str = str(data.Date[i])
    date_time_str = date_time_str.replace("M ","")
    date1 = date_time_str.replace(".","")
    dates.append(date1)

print(dates)

Ответы [ 2 ]

3 голосов
/ 12 июля 2020

Используйте pd.to_datetime и укажите правильную строку формата для ваших данных ('M %m.%Y'):

import pandas as pd

data = pd.DataFrame( {"Code":[114, 115, 116, 117], 
                      "Date":["M 02.2017", "M 03.2018", "M 04.2019", "M 05.2020",]})

print(data)

# simply use the correct format string for your data here
data["asDate"] = pd.to_datetime(data["Date"], format = "M %m.%Y") 
print(data)

Вывод:

   Code       Date
0   114  M 02.2017
1   115  M 03.2018
2   116  M 04.2019
3   117  M 05.2020

   Code       Date     asDate
0   114  M 02.2017 2017-02-01
1   115  M 03.2018 2018-03-01
2   116  M 04.2019 2019-04-01
3   117  M 05.2020 2020-05-01

Чтобы получить только даты в списке используют

dates_1 = list(data["asDate"]) # contains <class 'numpy.datetime64'> and
dates_2 = list(data["asDate"].values) # <class 'pandas._libs.tslibs.timestamps.Timestamp'>
1 голос
/ 12 июля 2020

Предполагая, что ваши даты всегда начинаются с 'M ' (что означает, что фактическая дата начинается с позиции 2 в строке):

df['date'] = df['date'].apply(lambda x: pd.to_datetime(x[2:], format = '%m.%Y'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...