将格式极差的数据排列到整齐的行和列中

时间:2019-07-10 23:47:46

标签: python python-3.x

我正在使用python工作,最近我可以处理一些数据,这些数据的格式非常差。它是这样的:

arcs.f row1 = "" 1 1 2 3 4 4 "" row2 = ""
" 1 1 2 3 4 4 """ row3 = "1 1 2 3 4 " r
ow4 = " 1 1 2 3 4 4 " row5 = "1 1 2 3 4 

,依此类推。似乎所有行都移出了几个字符,因此应该放在一行中的数据实际上分布在两行中。我正在处理多个不同的文件,所有文件都具有相同的问题,每个文件至少有一百行这样的内容。

我希望它看起来像这样:

row1 = " 1 1 2 3 4 4 "
row2 = " 1 1 2 3 4 4 "
row3 = " 1 1 2 3 4 4 "
row4 = " 1 1 2 3 4 4 "
row5 = " 1 1 2 3 4 4 "

我不太在乎是否有row# =部分或引号。只要它从应该开始的地方开始,并且所有数字都以正确的顺序排列。

到目前为止,我一直在将所有数据放入具有一行和多列的pandas数据框中。每列包含一行数据,如其原始格式所示。然后,我将数据导出到.txt文件中。然后,我的想法是使用read_csv()将数据读回到python,并设置定界符以将数据分为几列,这些列仅包含应排成一行的数据。然后我可以弄乱它,使其变成上面显示的格式。

我成功完成了第一部分,但是我无法成功将数据读回到python中。这是我尝试的代码:

row = pd.read_csv(r'filename.txt', sep = "spec%s | spec%s%s | spec%s%s", engine='python')

我还尝试使用%d代替%s,并且只使用一个定界符,例如

sep = spec%s

,似乎没有任何效果。

它仅以一行一行的方式读取数据,而不是以其他方式读取数据。是否可以使用另一个定界符,或者是否有更好的方法可以完全执行此操作?我还尝试将整个混乱变成一个大字符串,然后从那里进行排序。数据框是我想到的唯一方法,但仍然使我面临与此处相同的问题。谢谢!

0 个答案:

没有答案