Python怎么判断表格时间在上午or下午

问题描述:

表格中存在一列数据:时间,格式例如:2021/12/11 8:43或者2021-12-11 8:43,要判断这个时间在上午还是在下午?

完整版代码:

import pandas as pd
import numpy as np
import datetime as dt
from collections import Counter


df = pd.read_csv(r'C:\Users\hanhan\PycharmProjects\pythonProject\data.csv',encoding = 'gb2312', usecols=['开始时间'])
time = []

for i in range(len(df)):
    # print('i=', i)
    starttime = df['开始时间'].iloc[i]
    print('starttime', starttime)
    # 转换成Y-m-d H:M 字符串形式
    try:
        starttime = str(dt.datetime.strptime(starttime, '%Y-%m-%d %H:%M'))[:-3]
    except:
        starttime = str(dt.datetime.strptime(starttime, '%Y/%m/%d %H:%M'))[:-3]
    print('修改后starttime',starttime)
    if int(starttime[11:13]) <= 12:
        time.append('AM')
        print('It is AM')
    else:
        time.append('PM')
        print('It is PM')

print('time',time)
df['上午下午'] = time

求解步骤:

(1)导入库

import pandas as pd
import numpy as np
import datetime as dt
from collections import Counter

(2)读取数据

 df = pd.read_csv(r'C:\Users\hanhan\PycharmProjects\pythonProject\data.csv',encoding = 'gb2312', usecols=['开始时间'])

并设置一个空列表,方便存储得到的答案集

time = []

(3)循环遍历时间列

 因为时间格式存在两种形式,所以首先根据try...except...语句对时间列进行处理,这样所有的个位数月份或者是时间都会填充一个0,如下图所示。这样就会方便我们取多少位数。

然后,对要进行判断的starttime[11:13]也就是时钟部分进行判断,(这里我把12点到1点这段时间也算到了上午,可根据自己需求修改)。

if int(starttime[11:13]) <= 12:
    time.append('AM')
    print('It is AM')
else:
    time.append('PM')
    print('It is PM')

 (4)存入文件

df['上午下午'] = time

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值