首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在熊猫中操纵时间范围

在熊猫中操纵时间范围
EN

Stack Overflow用户
提问于 2019-07-20 17:53:46
回答 1查看 184关注 0票数 0

需要清理csv导入,这给了我一系列的时间(以字符串的形式)。代码在底层;我目前在df上使用正则表达式和replace()来转换其他字符。只是不知道如何:

  1. 选择当前24小时格式编号并添加:00
  2. 如何选择12小时格式号码,并使其24小时。

输入(来自csv导入):

代码语言:javascript
复制
   break_notes
0        15-18
1  18.30-19.00
2      4PM-5PM
3          3-4
4     4-4.10PM
5      15 - 17
6      11 - 13

到目前为止,我已经让它看起来像(删除空格,AM/PM,用冒号替换点):

代码语言:javascript
复制
   break_notes
0          15-18
1    18:30-19:00
2            4-5
3            3-4
4         4-4:10
5          15-17
6          11-13

但是,我希望它看起来像这样(‘HH:MM:MM’格式):

代码语言:javascript
复制
   break_notes
0    15:00-18:00
1    18:30-19:00
2    16:00-17:00
3    15:00-16:00
4    16:00-16:10
5    15:00-17:00
6    11:00-13:00

我的代码是:

代码语言:javascript
复制
data = pd.read_csv('test.csv')
data.break_notes = data.break_notes.str.replace(r'([P].|[ ])', '').str.strip()
data.break_notes = data.break_notes.str.replace(r'([.])', ':').str.strip()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-20 18:16:34

以下是基于所请求的输入数据所需的转换器函数。convert_entry获取完整的值条目,将其分割成一个破折号,并将其结果传递给convert_single,因为一个条目的两个半部都可以单独转换。在每一次转换之后,它将它们合并为一个破折号。

convert_single使用regex搜索时间字符串中的重要部分。首先是一些数字\d+ (代表小时),然后是点或冒号,以及更多的数字[.:]?(\d+)? (表示分钟)。在此之后,还可以选择AM或PM (AM|PM)? (在本例中只有PM是相关的)

代码语言:javascript
复制
import re


def convert_single(s):
    m = re.search(pattern="(\d+)[.:]?(\d+)?(AM|PM)?", string=s)
    hours = m.group(1)
    minutes = m.group(2) or "00"
    if m.group(3) == "PM":
        hours = str(int(hours) + 12)
    return hours.zfill(2) + ":" + minutes.zfill(2)


def convert_entry(value):
    start, end = value.split("-")
    start = convert_single(start)
    end = convert_single(end)
    return "-".join((start, end))


values = ["15-18", "18.30-19.00", "4PM-5PM", "3-4", "4-4.10PM", "15 - 17", "11 - 13"]

for value in values:
    cvalue = convert_entry(value)
    print(cvalue)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57127264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档