编写程序以将日期和时间与Python Pandas中的datetime列分开

假设您在数据框中有datetime列,并且将日期和时间分开的结果是,

   datetime    date       time
0 2020-01-01 07:00:00 2020-01-06 07:00:00
1 2020-01-02 07:00:00 2020-01-06 07:00:00
2 2020-01-03 07:00:00 2020-01-06 07:00:00
3 2020-01-04 07:00:00 2020-01-06 07:00:00
4 2020-01-05 07:00:00 2020-01-06 07:00:00
5 2020-01-06 07:00:00 2020-01-06 07:00:00

为了解决这个问题,我们将遵循以下方法-

解决方案1

  • 使用定义数据框“ datetime”列。它的定义如下pd.date_range()

pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:00',periods=6)})

  • 设置循环d变量以逐一访问df ['datetime']列。

  • 从for循环中转换日期和时间,并将其另存为df ['date']和df ['time']。它的定义如下

for d in df['datetime']:
   df['date'] = d.date()
   df['time'] = d.time()

例子

让我们检查以下代码以获得更好的理解-

import pandas as pd
df = pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:00',periods=6)})
print("DataFrame is:\n", df)
for d in df['datetime']:
   df['date'] = d.date()
   df['time'] = d.time()
print(df)

解决方案2

  • 定义一个数据框

  • 在df ['datetime']中应用函数,然后使用选择日期,然后将其另存为df ['date']pd.to_datetime()dt.date

  • 在df ['datetime']中应用函数,然后使用选择时间,然后将其另存为df ['time']pd.to_datetime()dt.time

例子

让我们检查以下代码以获得更好的理解-

import pandas as pd
df = pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:10',periods=6)})
print("DataFrame is:\n", df)
df['date'] = pd.to_datetime(df['datetime']).dt.date
df['time'] = pd.to_datetime(df['datetime']).dt.time
print("Date-time-hour-minutes :\n", df)

输出

DataFrame is:
             datetime
0 2020-01-01 07:10:00
1 2020-01-02 07:10:00
2 2020-01-03 07:10:00
3 2020-01-04 07:10:00
4 2020-01-05 07:10:00
5 2020-01-06 07:10:00
Date-time-hour-minutes :
   datetime    date    time
0 2020-01-01 07:10:00 2020-01-06 07:10:00
1 2020-01-02 07:10:00 2020-01-06 07:10:00
2 2020-01-03 07:10:00 2020-01-06 07:10:00
3 2020-01-04 07:10:00 2020-01-06 07:10:00
4 2020-01-05 07:10:00 2020-01-06 07:10:00
5 2020-01-06 07:10:00 2020-01-06 07:10:00

猜你喜欢