gpt4 book ai didi

python - 添加 datetime.datetime 和 datetime.time

转载 作者:太空宇宙 更新时间:2023-11-04 05:00:45 32 4
gpt4 key购买 nike

我正在尝试添加 datetime.datetime 和 datetime.time 以获得一列。我正在尝试结合:

import datetime as dt
dt.datetime.combine(myDF['Date'].astype(dt.date), myDF['Time'].astype(dt.time))

但我得到:

TypeError: combine() argument 1 must be datetime.date, not Series

我正在尝试这个:

myDF['Date'] + myDF['Time']

但是我明白了

TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.time'

有谁知道,我怎样才能合并我的两个列?

             Date               Time
0 2011-08-08 00:00:00 08:10:00
1 2011-08-08 00:00:00 08:10:00
2 2011-08-08 00:00:00 08:10:00
3 2011-08-08 00:00:00 11:20:00
4 2011-08-08 00:00:00 12:25:00
5 2011-08-08 00:00:00 14:20:00

最佳答案

您正在尝试合并整列,但datetime.combine() 不知道如何应用于单独的列。

使用 DataFrame.apply() method相反:

def combine_cols(row):
return dt.datetime.combine(
row['Date'].date(), row['Time'])

myDF.apply(combine_cols, axis=1)

axis=1 告诉 apply() 将每一行传递给可调用对象。

演示:

>>> import pandas as pd
>>> import datetime as dt
>>> myDF = pd.DataFrame({
... 'Date': pd.Series([dt.datetime(2011, 8, 8)] * 6),
... 'Time': pd.Series([dt.time(8, 10), dt.time(8, 10), dt.time(8, 10), dt.time(11, 20), dt.time(12, 25), dt.time(14, 20)])
... })
>>> myDF
Date Time
0 2011-08-08 08:10:00
1 2011-08-08 08:10:00
2 2011-08-08 08:10:00
3 2011-08-08 11:20:00
4 2011-08-08 12:25:00
5 2011-08-08 14:20:00
>>> def combine_cols(row):
... return dt.datetime.combine(
... row['Date'].date(), row['Time'])
...
>>> myDF.apply(combine_cols, axis=1)
0 2011-08-08 08:10:00
1 2011-08-08 08:10:00
2 2011-08-08 08:10:00
3 2011-08-08 11:20:00
4 2011-08-08 12:25:00
5 2011-08-08 14:20:00
dtype: datetime64[ns]

关于python - 添加 datetime.datetime 和 datetime.time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45805369/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com