如何将按行排序的数据重新排列成按列排序的数据?



我有一个按如下方式排列的文本文件:

Time  x1  y1  z1  x2  y2  z2 ... x54  y54  z54
0   x1(0) ect.   x2(0)   .       .    .    .
1   x1(1)    .   .   .   .       .    .    .
.    .   .   .   .   .   .       .    .    .
1e10

,我希望它看起来像这样:

Time  x    y     z
0   x1(0) y1(0) z1(0) 
0   x2(0) y2(0) z2(0)
.
.
0  x54(0) y54(0) z54(0)
1   x1(1) y1(1) z1(1)
.
.
.
1e10 x1(1e10) y1(1e10) z1(1e10)
. 
.
1e10 x54(1e10) y54(1e10) z54(1e10)

我最初的想法是:

with open("file.txt", 'r') as f:
lines = f.readlines()
time = [float(line.split()[0]) for line in lines]
x1 = [float(line.split()[1]) for line in lines]
x2 = [float(line.split()[2]) for line in lines]

等。直到我有1 + 3 x 54个列表。然后我将不得不组合列表(分别为x, y和z列表),即[x1(0), x2(0),…,x54(0),x1(1),等等]。这似乎非常低效,因为我的文件是如此之大,我想我在这里会有问题。有人有更好的主意吗?

感谢

你会用熊猫吗?

import pandas as pd
df = pd.read_csv("file.txt")
df.T

最新更新