从pandas和python中的csv列复制一系列文本

2024-04-24 07:05:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,我已经导入到Pandas中。现在它有将近45列数据,每列有100多行信息。现在,我只需要选择一个文本范围,该文本的开头是日期戳,结尾是日期戳。在

例如:

<GMT2015-09-01 00:03:29GMT> Hi Rajiv<GMT2015-09-01 19:08:15GMT> Hi Ram <GMT2015-09-01 19:08:15GMT>

因此,在这样的结构中,我只需要选择datestamp的第一段,将其放入一个新的数据帧中。在


Tags: 文件csv数据文本信息pandas结尾hi
2条回答

Regex和pandas应用程序应该达到您想要的效果。我假设你只需要第一个和第二个时间戳之间的文本。我已经用你的消息创建了一个数据帧,除了第二个以2开头。^regex中的{}搜索由><包围的任意数量的字符。?使其非贪心,因此它不会从第一个时间戳一直到最后一个时间戳,并在第一个匹配时停止。在

示例代码如下:

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]

输出:

^{pr2}$

我认为您可以通过<>选择Ticket Description列中的^{}数据,然后按^{}选择输出DataFrame。最后,您可以^{}开始和结束空白。在

注意:如果<>只在每个datetime的start和end od中使用,则效果很好。在

import pandas as pd

df = pd.DataFrame({'Ticket Description':['<GMT2015-09-01 00:03:29GMT> Hi Rajiv<GMT2015-09-01 19:08:15GMT> Hi Ram <GMT2015-09-01 19:08:15GMT> ']})
print (df)
                                  Ticket Description
0  <GMT2015-09-01 00:03:29GMT> Hi Rajiv<GMT2015-0...

print (df['Ticket Description'].str.split(r'[<>]', expand=True).iloc[:, 2].str.strip())
0    Hi Rajiv
Name: 2, dtype: object

相关问题 更多 >