我把13位时间戳转化成Datetime后,想要分析这些有多少是上午的,有多少是下午的。
把date和time分开后,想要用IF语句判断小时数小于等于12的就输出上午,其他就输出下午。
查了time的属性是Obejct,想要用.astype(int)转换成int,但是报错了。
想问下应该怎么写才能够判断是上午还是下午?谢谢!!
你用time.hour获取小时,就是int类型的了
你是如何分开date 和 time 的,一起处理即可。
给份字符串处理的方式给你参考
import pandas as pd
data = '''2022-03-01 01:00:00 20
2022-03-01 10:05:00 20
2022-03-01 09:10:00 20
2022-03-01 15:15:00 20
2022-03-01 20:25:00 20
2022-03-01 10:26:00 20
2022-03-01 18:27:00 20
2022-03-01 13:35:00 20
2022-03-01 09:40:00 20
2022-03-01 02:42:00 20
2022-03-01 00:55:00 20
2022-03-01 08:00:00 20
2022-03-01 12:06:00 20'''
data_list = data.split("\n")
df = pd.DataFrame(data_list,columns=['datetime'])
# 可以直接转
df['time'] = df['datetime'].apply(lambda x : "{} {}".format(x[11:20], 'AM' if x[11:13]<'12' else 'PM') )
print(df)
# 或者继续转
df['time1'] = df['datetime'].apply(lambda x : x[11:20] )
print(df)
df['time1'] = df['time1'].apply(lambda x : "{} {}".format(x, 'AM' if x[1:3]<'12' else 'PM') )
print(df)
import time
a='2022-3-23 23:00:00'
ticks=time.mktime(time.strptime(a,'%Y-%m-%d %H:%M:%S'))
hour=time.localtime(ticks).tm_hour
if hour <= 12:
print('AM')
else:
print('PM')
这是一个从时间戳转换小时的操作,可以参考下