我有一个字符串列表:
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