微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐