我有以下数据帧
data = [
['ticket_1', '''2021-04-18 11:11:23 - Unknown
Part replaced
2021-04-18 09:03:10 - John Doe
Requires part change. Technician enroute
2021-04-17 19:30:25 - John Doe
Working on the issue'''],
['ticket_2','''2021-04-17 19:13:09 - Unknown_2
Transferring to other resource
2021-04-17 19:12:34 - Unknown_2
Issue assigned''']
]
我想拆分注释列并执行以下步骤
1。提取日期时间并包含在另一列中
2。在另一列中包含日期时间后的字符串
3。根据评论栏中的多个日期时间重复票证数量
例如
data_1 = [
['ticket_1','''2021-04-18 11:11:23''','''Unknown
Part replaced'''],
['ticket_1', '''2021-04-18 09:03:10''', '''John Doe
Requires part change. Technician enroute'''],
['ticket_1','''2021-04-17 19:30:25''', '''John Doe
Working on the issue'''],
['ticket_2','''2021-04-17 19:13:09''','''Unknown_2
Transferring to other resource'''],
['ticket_2','''2021-04-17 19:12:34''','''Unknown_2
Issue assigned''']
]
我尝试过使用regex、explode、split和slice的组合,但没有取得丰硕的成果
假设数据帧具有以下结构:
首先,使用
Series.str.split
查找datetime值的comments
列中所有出现的字符串值,后跟任何字符,直到下一个datetime值或多行字符串的结尾,即\Z
,并传递适当的正则表达式。您还需要传递re.DOTALL
标志,因为它是一个多行字符串,然后explode
这个新列上的数据帧,并将datetime和comment的值转换为两个单独的列,对它们应用pandas Series,并对axis=1
执行串联:现在,您可以删除不需要的列,也可以删除新的
comment
列以删除开头或结尾的任何连字符-
和空格,如果需要,还可以将datetime
列转换为datetime类型输出:
相关问题 更多 >
编程相关推荐