Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
135 views
in Technique[技术] by (71.8m points)

python - pandas split list into columns with regex

I have a string list:

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

I want a data frame, like:

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

Considering the fact that all my strings in the list starts in that format, I can just split by -, but I rather look for a smarter way to do so.

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

(I'll convert the date to date time afterwards)

Any help would be appreciated.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use str.extract - where named groups can become column names

In [5827]: df['content'].str.extract('(?P<date>[sS]+) - (?P<message>[sS]+)', 
                                     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

Details

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...