【问题标题】:How can I rearrange data sorted in rows into data sorted into columns?如何将按行排序的数据重新排列为按列排序的数据?
【发布时间】:2021-12-07 10:49:56
【问题描述】:

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

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) 等]。这似乎非常低效,而且由于我的文件太大,我想我会在这里遇到问题。有没有人对如何做到这一点有更好的想法?

谢谢

【问题讨论】:

  • 您可能希望使用库 pandas 来处理表格格式的数据

标签: python list file for-loop formatting


【解决方案1】:

你会用熊猫吗?

import pandas as pd

df = pd.read_csv("file.txt")

df.T

【讨论】:

  • 我不想转置数据,所以这行不通
猜你喜欢
  • 2018-11-27
  • 2014-02-02
  • 2010-11-20
  • 2023-01-05
  • 2014-03-10
  • 1970-01-01
  • 2016-08-03
相关资源
最近更新 更多