python – pandas将列表拆分为带正则表达式的列

我有一个字符串列表:

content
01/09/15,10:07 - message1
01/09/15,10:32 - message2
01/09/15,10:44 - message3

我想要一个数据框,如:

date                message
01/09/15,10:07          message1
01/09/15,10:32          message2
01/09/15,10:44          message3

考虑到列表中的所有字符串都以该格式开头这一事实,我可以将其拆分为 –,但我更愿意寻找一种更智能的方法.

history = pd.DataFrame([line.split(" - ",1) for line in content],columns=['date','message'])

(之后我会将日期转换为日期时间)

任何帮助,将不胜感激.

解决方法

您可以使用str.extract – 其中命名组可以成为列名

In [5827]: df['content'].str.extract('(?P<date>[\s\S]+) - (?P<message>[\s\S]+)',expand=True)
Out[5827]:
              date   message
0  01/09/15,10:07  message1
1  01/09/15,10:32  message2
2  01/09/15,10:44  message3

细节

In [5828]: df
Out[5828]:
                      content
0  01/09/15,10:07 - message1
1  01/09/15,10:32 - message2
2  01/09/15,10:44 - message3

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...