【发布时间】:2016-12-07 13:20:49
【问题描述】:
我尝试从时间戳中提取小时: 我有一个名为 df_no_missing 的数据框:
df_no_missing.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 34673 entries, 1 to 43228 Data columns (total 8 columns): TIMESTAMP 34673 non-null object P_ACT_KW 34673 non-null float64 PERIODE_TARIF 34673 non-null object P_SOUSCR 34673 non-null float64 SITE 34673 non-null object TARIF 34673 non-null object depassement 34673 non-null float64 date 34673 non-null int64 dtypes: float64(3), int64(1), object(4) memory usage: 2.4+ MB
这是我的代码:
from datetime import datetime,timedelta
mytime = datetime.strptime(df_no_missing["TIMESTAMP"],"%d/%m/%Y %H:%M")
print (mytime.day)
print (mytime.hour)
我得到这个错误:
在 () 1 df_no_missing.info() 2 从日期时间导入日期时间,时间增量 ----> 3 mytime = datetime.strptime(df_no_missing["TIMESTAMP"],"%d/%m/%Y %H:%M") 4 打印 (mytime.day) 5 打印 (mytime.hour)
TypeError: strptime() 参数 1 必须是 str,而不是 Series
【问题讨论】:
-
df_no_missing["TIMESTAMP"]返回整列,您不能在此上下文中使用它。你认为mytime的值是多少? -
这似乎无效,列
dtype是object表明它是字符串,你没有显示当前格式是什么但你可以尝试df_no_missing["TIMESTAMP"] = pd.to_datetime(df_no_missing["TIMESTAMP"])转换为datetime之后你可以做df_no_missing["TIMESTAMP"].dt.day和df_no_missing["TIMESTAMP"].dt.hour