【发布时间】:2025-12-27 10:15:11
【问题描述】:
这是一个困扰我很久的问题。我有要转换为 csv 的日志文件。我的问题是日志文件中省略了空字段。我想最终得到一个包含所有字段的 csv 文件。
现在我正在解析日志文件并将它们写入 xml,因为 Microsoft Excel 的一个不错的功能是,当您打开具有不同数量元素的 xml 文件时,Excel 会将所有元素显示为单独的列。
上周我想出了用 Pandas 可以做到这一点的想法,但我找不到一个很好的例子来完成这个。
有人知道如何完成这项工作吗?
更新
我不能在这里分享实际的日志。下面是一个虚构的样本:
样本 1:
First : John Last : Doe Address : Main Street Email : j_doe@notvalid.gov Sex : male State : TX City : San Antonio Country : US Phone : 210-354-4030
First : Carolyn Last : Wysong Address : 1496 Hewes Avenue Sex : female State : TX City : KEMPNER Country : US Phone : 832-600-8133 Bank_Account : 0123456789
正则表达式:
matches = re.findall(r'(\w+) : (.*?) ', line, re.IGNORECASE)
示例 2:
:1: John :2: Doe :3: Main Street :4: j_doe@notvalid.gov :5: male :6: TX :7: San Antonio :8: US :9: 210-354-4030
:1: Carolyn :2: Wysong :3: 1496 Hewes Avenue :5: female :6: TX :7: KEMPNER :8: US :9: 832-600-8133 :10: 0123456789
正则表达式:
matches = re.findall(r':(\d+): (.*?) ', line, re.IGNORECASE)
【问题讨论】:
-
一般取决于文件的格式,是否可以创建示例数据?
-
I know the desired column name.- 如果正则表达式解析,是否可以像{'First Name':Joe, 'Last Name':Doe, 'Address':'Main Street', ...}这样为每一行创建字典?还是不行? -
如果是,则创建 dicts 列表并传递给
DataFrame构造函数,它工作得很好 - 为缺少的列添加了 NaN -
可以在每一行都这样做(一些日志是大文件)。现在我将每个字段直接作为元素写入 xml 文件。
-
列表和/或大文件的 DataFram 没有内存问题?
标签: python pandas csv export-to-csv