我有一个日志文件(FIX),我正试图转换为带有标题的csv,例如:
8=FIX.4.2|9=435|35=8|34=8766|49=SENDERCOMPID|50=ET1|52=20230228-14:31:17.796|56=TARGETCOMPID|
8=FIX.4.2|9=435|35=8|34=8767|49=SENDERCOMPID|50=ET1|52=20230228-14:31:17.796|56=TARGETCOMPID|
8=FIX.4.2|9=435|35=8|34=8768|49=SENDERCOMPID|50=ET1|52=20230228-14:31:17.796|56=TARGETCOMPID|
希望规范化为csv,如下所示:
8,9,35,34,49,50,52,56
FIX.4.2,435,8,8766,SENDERCOMPID,ET1,20230228-14:31:17.796,TARGETCOMPID
FIX.4.2,435,8,8767,SENDERCOMPID,ET1,20230228-14:31:17.796,TARGETCOMPID
FIX.4.2,435,8,8768,SENDERCOMPID,ET1,20230228-14:31:17.796,TARGETCOMPID
阅读文件日志:
with open(some.txt) as file:
data = file.read()
fix = pd.read_csv(data,sep='|')
print(fix)
我有一些正则表达式用于头文件和解析数据:
# regexforheader = re.compile("(?<=\|)(.*?)(?==)")
# regexRowData = re.compile="(?<=\=)(.*?)(?=\|)"
不知道该怎么把这些联系起来。
2条答案
按热度按时间rt4zxlrg1#
对于pandas,您可以使用
str.split
和pivot
:使用
csv
模块(假设第一行定义了所有列):输出:
计时
在300k行输入上:
mbjcgjjk2#
使用
pandas.Series.str.extract
和pandas.Series.str.split