Объединение различных столбцов даты и времени для формирования значения даты и времени - PullRequest
1 голос
/ 14 июня 2019

Я пытаюсь создать формат ГГГГ-ММ-ДД ЧЧ: ММ: СС AM / PM (например, 2017-01-01 12:00:00 AM) из a.Столбец даты в формате DDMMMYYYY (например, 01JAN2017);и б.Столбец времени в формате ЧЧ: ММ: СС AM / PM (например, 12:00:00 AM).

AM / PM в (b), кажется, самая большая проблема.

Я попробовал несколько подходов от переполнения стека a.read.csv (parse_dates = [['date', 'time]]), а затем переупорядочить столбец даты и времени, используя pd.to_datetime (df, format ='% d% b% Y% H:% M:% S ').б.Преобразование «date» с использованием функции datetime и «time» в timedeltas с использованием pd.time_delta перед попыткой объединить их оба.с.Цикл ( Объедините столбцы даты и времени, используя datetime ) d.Написание парсера, а затем включение парсера в команду pd.read_csv вместе с parse_dates = [['date', 'time']].( Преобразовать строковое время даты в панды datetime )

a.df = pd.read_csv('a.csv',parse_dates=[['date','time']]) df['datetime'] = pd.to_datetime(df['datetime'], format = format='%d%b%Y %H:%M:%S)

б.df = pd.read_csv('a.csv') df["Date"] = pd.to_datetime(df["Date"]) df["Time"] = pd.to_timedelta(df["Time"]) df["DateTime"] = df["Date"] + df["Time"]

c.То же, что код в ссылке

d.Аналогично коду в ссылке

Я получил множество сообщений об ошибках в форматах, поскольку столбец времени содержит часть AM или PM после части HH: MM: SS.

1 Ответ

1 голос
/ 14 июня 2019

Используйте to_datetime с %I для часа разбора в формате 12H с %p для разбора AM/PM.Последнее, если нужно в выводе AM/PM необходимо преобразовать в строки на Series.dt.strftime:

df = pd.read_csv('a.csv')

print (df)
        Date         Time
0  01JAN2017  12:00:00 AM

df["DateTime"] = pd.to_datetime(df["Date"] + ' ' +df["Time"],  format='%d%b%Y %I:%M:%S %p')
df["DateTime_str"] = df["DateTime"].dt.strftime('%Y-%m-%d %I:%M:%S %p')
print (df)
        Date         Time   DateTime            DateTime_str
0  01JAN2017  12:00:00 AM 2017-01-01  2017-01-01 12:00:00 AM
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...