繁体   English   中英

从熊猫的时间列中提取小时

[英]Extracting the hour from a time column in pandas

假设我有以下数据集:

在此处输入图片说明

我将如何创建一个新列,作为时间的小时?

例如,下面的代码适用于个别时间,但我无法将其概括为 Pandas 中的一列。

t = datetime.strptime('9:33:07','%H:%M:%S')
print(t.hour)

使用to_datetime到日期时间与dt.hour

df = pd.DataFrame({'TIME':['9:33:07','9:41:09']})

#should be slowier
#df['hour'] = pd.to_datetime(df['TIME']).dt.hour

df['hour'] = pd.to_datetime(df['TIME'], format='%H:%M:%S').dt.hour
print (df)
      TIME  hour
0  9:33:07     9
1  9:41:09     9

如果想要在列TIME使用datetime s,则可以分配回:

df['TIME'] = pd.to_datetime(df['TIME'], format='%H:%M:%S')

df['hour'] = df['TIME'].dt.hour
print (df)
                 TIME  hour
0 1900-01-01 09:33:07     9
1 1900-01-01 09:41:09     9

我的建议:

df = pd.DataFrame({'TIME':['9:33:07','9:41:09']})
df['hour']= df.TIME.str.extract("(^\d+):", expand=False)
  • “str.extract(...)”是一个矢量化函数,它提取一个正则表达式模式(在我们的例子中是“(^\\d+):”,它是时间的小时)并通过指定参数返回一个 Pandas Series 对象“扩展=假”
  • 结果存储在“小时”列中

您可以使用 extract() 两次来突出“小时”列

df['hour'] = df. TIME. str. extract("(\d+:)")
df['hour'] = df. hour. str. extract("(\d+)")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM