import pandas as pd
import re
data = pd.DataFrame({"id":[1,2],"ticket_desc":[r"<GMT2015-09-01 00:03:29GMT> Hi Rajiv, As part of our job Request for your approval. Thanks <GMT2015-09-01 19:08:15GMT> Hi Ram, Request Approved Thanks <GMT2015-09-01 19:08:15GMT>.",r"<GMT2015-09-01 00:03:29GMT> 2Hi Rajiv, As part of our job Request for your approval. Thanks <GMT2015-09-01 19:08:15GMT> Hi Ram, Request Approved Thanks <GMT2015-09-01 19:08:15GMT>."]})
def finder(x):
return re.findall(">(.+?)<",x)[0]
data["ticket_desc"] = data["ticket_desc"].apply(finder)
print data["ticket_desc"][0]
print data["ticket_desc"][1]
Regex和pandas应用程序应该达到您想要的效果。我假设你只需要第一个和第二个时间戳之间的文本。我已经用你的消息创建了一个数据帧,除了第二个以2开头。^regex中的{}搜索由
>
和<
包围的任意数量的字符。?
使其非贪心,因此它不会从第一个时间戳一直到最后一个时间戳,并在第一个匹配时停止。在示例代码如下:
输出:
^{pr2}$我认为您可以通过} 数据,然后按^{} 选择输出} 开始和结束空白。在
<>
选择Ticket Description
列中的^{DataFrame
。最后,您可以^{注意:如果
<>
只在每个datetime的start和end od中使用,则效果很好。在相关问题 更多 >
编程相关推荐