【发布时间】:2015-11-22 00:48:13
【问题描述】:
我目前正在处理一个项目,但遇到了一个问题。我必须从文本文件中提取数据以供以后使用,但我真的不知道如何从这个开始。数据是这样的:
21 22 23 24 25
(SGU)--V (PIU)--V (PIU)--V (SGG)--V (PIG)--V
Eigenvalues -- 0.12875 0.15169 0.15169 0.18748 0.22362
1 1 Si 1S -0.10815 0.00000 0.00000 -0.05058 0.00000
2 2S -1.54103 0.00000 0.00000 0.42252 0.00000
3 3PX 0.00000 -0.50361 0.00000 0.00000 -0.48055
4 3PY 0.00000 0.00000 -0.50361 0.00000 0.00000
5 3PZ -0.36562 0.00000 0.00000 -0.49574 0.00000
6 4PX 0.00000 0.77410 0.00000 0.00000 1.31613
7 4PY 0.00000 0.00000 0.77410 0.00000 0.00000
8 4PZ 1.87724 0.00000 0.00000 1.02724 0.00000
9 5D 0 -0.06070 0.00000 0.00000 -0.09982 0.00000
10 5D+1 0.00000 0.01079 0.00000 0.00000 -0.08697
11 5D-1 0.00000 0.00000 0.01079 0.00000 0.00000
12 5D+2 0.00000 0.00000 0.00000 0.00000 0.00000
13 5D-2 0.00000 0.00000 0.00000 0.00000 0.00000
14 2 Si 1S 0.10815 0.00000 0.00000 -0.05058 0.00000
15 2S 1.54103 0.00000 0.00000 0.42252 0.00000
16 3PX 0.00000 -0.50361 0.00000 0.00000 0.48055
17 3PY 0.00000 0.00000 -0.50361 0.00000 0.00000
18 3PZ -0.36562 0.00000 0.00000 0.49574 0.00000
19 4PX 0.00000 0.77410 0.00000 0.00000 -1.31613
20 4PY 0.00000 0.00000 0.77410 0.00000 0.00000
21 4PZ 1.87724 0.00000 0.00000 -1.02724 0.00000
22 5D 0 0.06070 0.00000 0.00000 -0.09982 0.00000
23 5D+1 0.00000 -0.01079 0.00000 0.00000 -0.08697
24 5D-1 0.00000 0.00000 -0.01079 0.00000 0.00000
25 5D+2 -0.00000 0.00000 0.00000 0.00000 0.00000
26 5D-2 0.00000 0.00000 0.00000 0.00000 0.00000
26
(PIG)--V
Eigenvalues -- 0.22362
1 1 Si 1S 0.00000
2 2S 0.00000
3 3PX 0.00000
4 3PY -0.48055
5 3PZ 0.00000
6 4PX 0.00000
7 4PY 1.31613
8 4PZ 0.00000
9 5D 0 0.00000
10 5D+1 0.00000
11 5D-1 -0.08697
12 5D+2 0.00000
13 5D-2 0.00000
14 2 Si 1S 0.00000
15 2S 0.00000
16 3PX 0.00000
17 3PY 0.48055
18 3PZ 0.00000
19 4PX 0.00000
20 4PY -1.31613
21 4PZ 0.00000
22 5D 0 0.00000
23 5D+1 0.00000
24 5D-1 -0.08697
25 5D+2 0.00000
26 5D-2 0.00000
我有 26 列这样的列,我必须只提取列中的数字。我想知道是否有某种功能可以更容易地从列中提取。在我真的不知道如何存储它之后,考虑到我必须能够在(矩阵或列表列表?)之后调用它。
有人可以帮我开始吗?
【问题讨论】:
-
我会将它存储到列表或 numpy 数组的字典中
-
你可以简单地逐行读取文件并使用
re.split('\s+', line)分割行 -
我会使用 Pandas 读取文件,然后使用 Pandas 方法和功能来操作表格。以下是读取文件的方法:
import pandasdf = pandas.read_csv("C:\\File.txt",sep='\t')