【问题标题】:Create and initialise a time column Python创建并初始化时间列 Python
【发布时间】:2020-03-04 16:13:04
【问题描述】:

我需要在现有数据框中添加一个时间列并对其进行初始化。我在一个小脚本中尝试了这行代码df['date']=datetime.time(0, 0, 0)

import pandas as pd
import datetime
df = pd.DataFrame({'column1':[34,54,32,23,26]})
df['date']=datetime.time(0, 0, 0)
print(df['date'])

输出:

0    00:00:00
1    00:00:00
2    00:00:00
3    00:00:00
4    00:00:00

但是当我在我的代码中实现它时,我在其中处理大型数据帧,我收到了这个错误:

dfreez['delta']=datetime.time(0, 0, 0)

TypeError: descriptor 'time' for 'datetime.datetime' objects doesn't apply to 'int' object

这是我的一段代码:

import pandas as pd
dfreez = pd.read_excel('file_name.xlsx',header=0, index= False)
from datetime import datetime
dfreez['delta']=datetime.time(0, 0, 0)

我不明白出了什么问题!

【问题讨论】:

  • 不要做datetime.time,做pd.to_timedelta('00:00:00')

标签: python pandas dataframe time


【解决方案1】:

import datetimefrom datetime import datetime相同。

在第一个之后,本地的datetime 变量是对模块的引用。所以你可以用datetime.datetime访问datetime类,用datetime.time访问time

在第二个之后,本地datetime 变量是对datetime 类的引用。所以你没有(直接 *)方法来访问 time 类。

你应该只使用:

import datetime

第二个 sn-p 就像第一个一样。


(*) 仅供参考:ugly sys.modules['datetime'].time 仍然是可能的。但永远不要假装我建议你这样做!

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 2013-10-29
    • 2012-05-23
    • 2014-02-18
    • 1970-01-01
    • 2020-10-25
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多