【发布时间】:2021-02-23 04:16:36
【问题描述】:
我有一个像这样用逗号分隔的文本数据集-
TABLE DATA IS ALPHANUMERIC
TABLE IS UNSORTED
VALUES ARE ( A S Q M N C H )
SEARCH IS LINEAR
,
TABLE DATA IS ALPHANUMERIC
TABLE IS SORTED
VALUES ARE ( 0A M 0B S 0A D 01 ' ' 04 N 05 P 07 T 08 K 09 E )
SEARCH IS NONLINEAR
,
TABLE DATA IS ALPHANUMERIC
TABLE IS SORTED
VALUES ARE ( 02 M 0f S 0A M 0B S 0A D 01 ' ' 0D N 05 P
17 T 08 K 09 E )
SEARCH IS LINEAR
示例输出将如下所示: sample output
我必须解析数据以形成一个 pandas 数据框,其中包含 is_alphanumeric、已排序/未排序和值等列。 我已根据逗号分隔符分隔文件并在每个项目中运行 for 循环。
value_name=[]
vname = re.search('VALUES ARE \( (.*) \)', line)
value_name.append(vname.group(1).replace("' '", "''"))
但是这个正则表达式只获取单行中的值。我无法获取那些分布在多行中的值。这里的一个数据项显示 2 行值,也可以有 3 行。在这种情况下我该如何获取。在这种情况下如何删除换行符并删除多余的空格?
【问题讨论】:
-
你能发布minimal reproducible example,包括样本输入和输出吗?即您是否从文件中读取此内容?预期的输出是什么?如果我们知道预期的输出是什么,这可能更容易使用字符串方法解析。
-
是的,我从文本文件中读取了输入,即我在问题中给出的格式。我附上了一个示例输出。基本上,无论括号内的值是什么,我都需要获取它。
-
如果“逗号”分隔的不是行元素而是段落,那么您可以将所有感兴趣的行解析为单行或行列表以使用
re方法进行检查
标签: python python-3.x regex pandas parsing