【发布时间】:2016-09-18 04:40:07
【问题描述】:
我是 python 新手,我正在尝试弄清楚如何加载包含每个时间步长的数据块的数据文件,例如:
TIME:,0
Q01 : A:,-10.7436,0.000536907,-0.00963283,0.00102934
Q02 : B:,0,0.0168694,-0.000413983,0.00345921
Q03 : C:,0.0566665
Q04 : D:,0.074456
Q05 : E:,0.077456
Q06 : F:,0.0744835
Q07 : G:,0.140448
Q08 : H:,-0.123968
Q09 : I:,0
Q10 : J:,0.00204377,0.0109621,-0.0539183,0.000708574
Q11 : K:,-2.86115e-17,0.00947104,0.0145645,1.05458e-16,-1.90972e-17,-0.00947859
Q12 : L:,-0.0036781,0.00161254
Q13 : M:,-0.00941257,0.000249692,-0.0046302,-0.00162387,0.000981709,-0.0135982,-0.0223496,-0.00872062,0.00548815,0.0114075,.........,-0.00196206
Q14 : N:,3797, 66558
Q15 : O:,0.0579981
Q16 : P:,0
Q17 : Q:,625
TIME:,0.1
Q01 : A:,-10.563,0.000636907,-0.00963283,0.00102934
Q02 : B:,0,0.01665694
Q03 : C:,0.786,-0.000666,0.6555
Q04 : D:,0.87,0.96
Q05 : E:,0.077456
Q06 : F:,0.07447835
Q07 : G:,0.140448
Q08 : H:,-0.123968
Q09 : I:,0
Q10 : J:,0.00204377,0.0109621,-0.0539183,0.000708574
Q11 : K:,-2.86115e-17,0.00947104,0.0145645,1.05458e-16,-1.90972e-17,-0.00947859
Q12 : L:,-0.0036781,0.00161254
Q13 : M:,-0.00941257,0.000249692,-0.0046302,-0.00162387,0.000981709,-0.0135982,-0.0223496,-0.00872062,0.00548815,0.0114075,.........,-0.00196206
Q14 : N:,3797, 66558
Q15 : O:,0.0579981
Q16 : P:,0,2,4
Q17 : Q:,786
每个块都包含许多变量,这些变量中的数据列数可能非常不同。每个时间步长块中每个变量的列数可能会发生变化,但是每个时间步长中每个块的变量数是相同的,并且始终知道导出了多少变量。数据文件中没有关于数据块数(时间步长)的信息。
读取数据后,应以每个时间步长的变量格式加载:
Time: | A: | B:
0 | -10.7436,0.000536907,-0.00963283,0.00102934 | ........
0.1 | -10.563,0.000636907,-0.00963283,0.00102934 | ........
0.2 | ...... | ........
如果每个时间步的数据列数相同,并且每个变量都相同,这将是一个非常简单的问题。
我想我需要逐行读取文件,在两个循环中,每个块一个,然后在每个块内一次,然后将输入存储在一个数组中(追加?)。由于我对 python 和 numpy 还不是很熟悉,所以每行不断变化的列数让我有点难过。
如果有人可以为我指出正确的方向,例如我应该使用哪些功能来相对有效地执行此操作,那就太好了。
【问题讨论】:
-
@Dot_Py 谢谢,但该解决方案似乎取决于知道我不知道的最大列数。那里的最后一个答案有一个循环,但似乎不起作用。
-
哦等等...你不知道列数?我认为这不是一个好习惯...所以您应该重新考虑/重新设计您的数据库方案,以在必要时添加更多行...而不是列。
-
但您可以遍历行并计算“,”出现次数以获得整个 .txt 中的最大列数 (
num_max_cols),然后您可以使用 "range(num_max_cols)" -
我不同意@Dot_Py 的说法,不知道输入中将出现的列没有问题。我认为您的问题的答案是填充字典对象。我已经写了一个答案,说明我会怎么做
标签: python csv numpy import scipy