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