dat*_*ana 5 python database logging dataframe pandas
我有一个日志文件,尝试使用read_csv或read_table在熊猫中读取。我有以下结果示例:
0 date=2015-09-17 time=21:05:35 duration=0 etc...
Run Code Online (Sandbox Code Playgroud)
在1列上。
我想拆分每一行,获取名称(如日期,时间等),然后将其转换为列,这样我将得到:
date time duration ...
0 2015-09-17 21:05:35 0
Run Code Online (Sandbox Code Playgroud)
谢谢 !
-----编辑答案以解决间距不一致的问题:
不确定 pythonic 方法应该是什么,但这里有一个可行的方法。
以OP的数据样本为例:
0 date=2015-09-17 time=21:05:35 duration=0
1 date=2015-09-17 time=21:05:36 duration=0
2 date=2015-09-17 time=21:05:37 duration=0
3 date=2015-09-17 time=21:05:38 duration=0
4 date=2015-09-17 time=21:05:39 duration=0
5 date=2015-09-17 time=21:05:40 duration=0
Run Code Online (Sandbox Code Playgroud)
我循环遍历每一行并在等号处分割,然后获取所需的文本:
import pandas as pd
log_data = open('log_sample.txt', 'r')
split_list = []
for line in log_data:
thing1 = line.split('=')
#print(thing1)
date = thing1[1][:10]
time = thing1[2][:8]
dur = thing1[3]
split_list.append([date, time, dur])
df = pd.DataFrame(split_list, columns=['date', 'time', 'duration'])
df
Run Code Online (Sandbox Code Playgroud)
-----第一个答案:
正如 @jezrael 在评论中提到的,您可以利用 read_csv 中的“sep”参数。
pd.read_csv('test.txt', sep=r'\\t', engine='python') #[1]
Run Code Online (Sandbox Code Playgroud)
看:
| 归档时间: |
|
| 查看次数: |
6130 次 |
| 最近记录: |