在熊猫中拆分日期时间

时间:2018-12-06 14:49:28

标签: python-3.x pandas datetime

所以我在熊猫中有这个数据集,我想对其进行时间序列分析。 我使用pd.read_csv导入数据集并将其命名为“ df”。然后,我使用df.head()函数检查了数据集的前5列。

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 个答案:

答案 0 :(得分:1)

首先,您需要将“日期”列转换为熊猫的Datetime:

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

答案 1 :(得分:1)

assigndt访问者

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

答案 2 :(得分:0)

您可以尝试通过这种方式在df['Date']

中创建两个新列,例如 Day Time
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

相关问题