假设我具有以下数据集:
我将如何创建一个新的列,该时间是小时?
例如,下面的代码可单独使用,但我无法将其概括为熊猫中的一列。
t = datetime.strptime('9:33:07','%H:%M:%S')
print(t.hour)
答案 0 :(得分:2)
使用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
如果想使用datetime
列中的TIME
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
答案 1 :(得分:0)
我的建议:
df = pd.DataFrame({'TIME':['9:33:07','9:41:09']})
df['hour']= df.TIME.str.extract("(^\d+):", expand=False)
答案 2 :(得分:0)
您可以使用extract()两次来突出显示“小时”列
df['hour'] = df. TIME. str. extract("(\d+:)")
df['hour'] = df. hour. str. extract("(\d+)")