Итак, у меня есть этот набор данных в пандах, и я хочу провести на нем анализ временных рядов. Я использовал pd.read_csv для импорта набора данных и назвал его «df». Затем я проверил первые 5 столбцов набора данных с помощью функции df.head ().
df.head ()
Date ARTICLES Detail
0 2018-070-2 10:54:00 DUBIC MALT CASH
1 2018-070-2 10:54:00 ANGEL COTTON-BUD CASH
2 2018-070-2 10:54:00 RIBENA 1LITTER CASH
3 2018-07-02 10:54:00 BOTTLE WATER 75CL CASH
4 2018-07-02 10:54:00 LWAYS CLASSIC THICK LONG CASH
Теперь я хочу разделить столбец даты на «День», например, 2018-07-02, и время, например, 10:54:00 в пандах.
Я пробовал использовать функцию rsplit, но она выдает ошибки.
Сообщите пробный код и сообщение об ошибке.
Ваши первые 3 записи имеют нечетный формат даты. И @ALollz хорошо замечает, вам не нужно много времени разделять дату и время.
ваши данные повреждены ...





Вы можете попробовать создать два новых столбца, например День и Время, из df['Date'].
df['Day'] = [d.date() for d in df['Date']]
df['Time'] = [d.time() for d in df['Date']]
ДЕМО:
import pandas as pd
df = pd.DataFrame({'Date': pd.date_range('2018-07-02 10:54:00', periods=5)})
df['Day'] = [d.date() for d in df['Date']]
df['Time'] = [d.time() for d in df['Date']]
print(df)
Видеть:https://repl.it/repls/HonoredFirstMicrokernel
Это сработало отлично. Спасибо!!
@AdeolaAdesina Добро пожаловать, удачи.
Быстрый вопрос @Curious_MI. А что, если бы у меня были другие столбцы в исходном наборе данных, как мне настроить код для их размещения. Видя, что здесь df показывает только дату, день и время?
Не должно быть никаких проблем, если у вас есть другие столбцы, код - это просто демонстрация, вы можете использовать существующий df, который может иметь столько столбцов, сколько хотите, вам просто нужно разделить столбец Дата на еще 2 столбца, например День и время.
Во-первых, вам нужно преобразовать столбец Date в Datetime Pandas:
In [1991]: df.Date = df.Date.apply(pd.to_datetime)
Затем вы можете разделить столбец Date на 2 новых столбца следующим образом:
In [1993]: df['Day'] = [d.date() for d in df['Date']]
...: df['Time'] = [d.time() for d in df['Date']]
...:
In [1994]: df
Out[1994]:
Date Day Time
0 2018-07-02 10:54:00 2018-07-02 10:54:00
1 2018-07-02 10:54:00 2018-07-02 10:54:00
2 2018-07-02 10:54:00 2018-07-02 10:54:00
3 2018-07-02 10:54:00 2018-07-02 10:54:00
4 2018-07-02 10:54:00 2018-07-02 10:54:00
assign и dt аксессуарdf.assign(Date=df.Date.dt.date, Time=df.Date.dt.time)
Date Time
0 2018-07-02 10:54:00
1 2018-07-02 10:54:00
2 2018-07-02 10:54:00
3 2018-07-02 10:54:00
4 2018-07-02 10:54:00
Это сработало очень хорошо. Большое спасибо. Но как я могу настроить код, если у меня были другие столбцы в исходном наборе данных, и я хочу, чтобы фрейм данных отражал дату, время и другие столбцы?
assign предоставляет копию фрейма данных с новыми столбцами, указанными в вызове assign.
Вам действительно нужны отдельные колонки
DateиTime? Если вы вместо этого преобразуете столбец в dtypedatetimeс помощьюpd.to_datetime, вы получите доступ ко всей этой информации и получите доступ к множеству встроенных методов, которые значительно упрощают работу с датами и временем, чем манипулирование строками. См. документы, чтобы узнать, как предлагается анализ временных рядов с помощьюpandas.