#python #pandas #dataframe #datetime #strptime
Вопрос:
У меня есть несколько фреймов данных, каждый из которых содержит данные в диапазоне от 1 до 1440 минут (один день).Все фреймы данных одинаковы, имеют одинаковые столбцы и одинаковую длину. Значения столбца времени приведены в hhmm
формате. Допустим, df_A содержит данные за 1-й день, то есть 2021-05-06
Это выглядит так.
>df_A
timestamp col1 col2..... col80
0
1
2
.
.
.
2359
И данные на следующий день находятся в df_B, что тоже совпадает. Дата такая 2021-05-07
>df_B
timestamp col1 col2..... col80
0
1
2
.
.
.
2359
Как я мог бы сложить их вместе друг под другом и создать один кадр данных, идентифицируя каждую строку столбцом, имеющим значения в формате, например YYYYMMDD HH:mm
. Которая несколько будет выглядеть так:
>df
timestamp col1 col2..... col80
20210506 0000
20210506 0001
.
.
20210506 2359
20210507 0000
.
.
20210507 2359
Как я мог бы достичь этого, имея дело с несколькими фреймами данных одновременно?
Комментарии:
1. Если имена столбцов одинаковы, то вы можете добавить оба df…то есть
df1.append(df2)
2. @AnuragDabas Путаница заключается в том, как решить проблему с датой и временем. Добавлять легко. Но изменение их формата даты-времени и объединение их в нужный мне формат даты-времени-вот где я застрял.
Ответ №1:
df_A = pd.DataFrame(range(0, 10), columns=['timestamp'])
df_B = pd.DataFrame(range(0, 10), columns=['timestamp'])
df_A['date'] = pd.to_datetime('2021-05-06 '
df_A['timestamp'].astype(str).str.zfill(4), format='%Y-%m-%d %H%M')
df_B['date'] = pd.to_datetime('2021-05-07 '
df_A['timestamp'].astype(str).str.zfill(4), format='%Y-%m-%d %H%M')
df_final = pd.concat([df_A, df_B])
df_final
timestamp date
0 0 2021-05-06 00:00:00
1 1 2021-05-06 00:01:00
2 2 2021-05-06 00:02:00
3 3 2021-05-06 00:03:00
4 4 2021-05-06 00:04:00
5 5 2021-05-06 00:05:00
6 6 2021-05-06 00:06:00
7 7 2021-05-06 00:07:00
8 8 2021-05-06 00:08:00
9 9 2021-05-06 00:09:00
0 0 2021-05-07 00:00:00
1 1 2021-05-07 00:01:00
2 2 2021-05-07 00:02:00
3 3 2021-05-07 00:03:00
4 4 2021-05-07 00:04:00
5 5 2021-05-07 00:05:00
6 6 2021-05-07 00:06:00
7 7 2021-05-07 00:07:00
8 8 2021-05-07 00:08:00
9 9 2021-05-07 00:09:00
Комментарии:
1. Я столкнулся с этой ошибкой ` Ошибка значения: данные о времени «2021-03-210001» не соответствует формату «%Y-%m-%d %H%M » (совпадение)«. Не знаю, почему
2. правильно ли вы скопировали, что между
%Y-%m-%d
форматом и%Y-%m-%d
«нравится» есть пробел'2021-03-21 0001'
%Y-%m-%d %H%M
? И почему вы столкнулись с этой ошибкой? Что ты пытаешься сделать? Я уже поставил пробел'2021-05-06 ' ...
смотрите пробел после 063. Я приношу свои извинения, это прекрасно работает. Я допустил какую-то ошибку в пространстве. Огромное спасибо