如何使用Pandas的sep参数解析含时间信息的日志并拆分字段
解决方案
你可以使用支持正向预查的正则表达式作为分隔符,匹配每行最后一个空格作为拆分边界,避免拆分时间内部的空格:delimiter=r'\s(?=\S+$)'
这个正则表达式的含义是:仅匹配后面仅跟着非空白字符直到行尾的空白字符,刚好能把前面完整的时间字符串、后面的姓名字段拆分。
完整可运行代码
import pandas as pd ex = ['Time', 'Name'] # 正则匹配最后一个空格作为分隔符 df = pd.read_csv('tmp.log', delimiter=r'\s(?=\S+$)', comment='#', engine='python', names=ex) print(df)
输出效果
Time Name 0 Jan 11 17:23:47 JACK 1 FEB 12 12:41:12 EMILIY
如果想让Time列作为索引和你贴的期望输出完全对齐,可以再加一行代码:
df = df.set_index('Time')
内容的提问来源于stack exchange,提问作者matiii
相关产品推荐
相关产品推荐

