使用python将部分文件文本读入数据帧
例如,我有以下格式的数据文本:使用python将部分文件文本读入数据帧,python,regex,pandas,file-read,Python,Regex,Pandas,File Read,例如,我有以下格式的数据文本: HEADER NODE DATA, AIR -10000, 15., -1.0 HEADER CONDUCTOR DATA, AIR 1, AIR.10000, S25D.1, 56.84441 $ AIR CONV 2, AIR.10000, S25D.2, 56.45712 $ AIR CONV
HEADER NODE DATA, AIR
-10000, 15., -1.0
HEADER CONDUCTOR DATA, AIR
1, AIR.10000, S25D.1, 56.84441 $ AIR CONV
2, AIR.10000, S25D.2, 56.45712 $ AIR CONV
3, AIR.10000, S25D.3, 53.35623 $ AIR CONV
4, AIR.10000, S25D.4, 45.09633 $ AIR CONV
5, AIR.10000, S25D.9, 77.00067 $ AIR CONV
6, AIR.10000, S25D.10, 80.35013 $ AIR CONV
7, AIR.10000, S25D.11, 50.4933 $ AIR CONV
8, AIR.10000, S25D.12, 91.61026 $ AIR CONV
9, AIR.10000, S25D.13, 53.75025 $ AIR CONV
10, AIR.10000, S25D.14, 75.68577 $ AIR CONV
11, AIR.10000, S25D.15, 110.0111 $ AIR CONV
12, AIR.10000, S25D.16, 114.7913 $ AIR CONV
13, AIR.10000, S25D.17, 81.12207 $ AIR CONV
14, AIR.10000, S25D.18, 72.80061 $ AIR CONV
15, AIR.10000, S25D.19, 72.21327 $ AIR CONV
16, AIR.10000, S25D.20, 90.99183 $ AIR CONV
17, AIR.10000, S25D.21, 66.35648 $ AIR CONV
18, AIR.10000, S25D.22, 76.9787 $ AIR CONV
19, AIR.10000, S25D.23, 52.46601 $ AIR CONV
20, AIR.10000, S25D.24, 68.30105 $ AIR CONV
21, AIR.10000, S25D.25, 114.0903 $ AIR CONV
22, AIR.10000, S25D.26, 70.51425 $ AIR CONV
23, AIR.10000, S25D.27, 36.39104 $ AIR CONV
24, AIR.10000, S25D.28, 78.88668 $ AIR CONV
25, AIR.10000, S25D.29, 70.77477 $ AIR CONV
26, AIR.10000, S25D.30, 87.04871 $ AIR CONV
27, AIR.10000, S25D.31, 64.50918 $ AIR CONV
28, AIR.10000, S25D.32, 76.20373 $ AIR CONV
29, AIR.10000, S25D.33, 90.69899 $ AIR CONV
30, AIR.10000, S25D.34, 83.89708 $ AIR CONV
31, AIR.10000, S25D.35, 88.59924 $ AIR CONV
32, AIR.10000, S25D.36, 72.06826 $ AIR CONV
33, AIR.10000, S25D.65, 157.6095 $ AIR CONV
34, AIR.10000, S25D.66, 140.3513 $ AIR CONV
35, AIR.10000, S25D.67, 215.1395 $ AIR CONV
36, AIR.10000, S25D.68, 131.7191 $ AIR CONV
37, AIR.10000, S25D.69, 173.7129 $ AIR CONV
38, AIR.10000, S25D.70, 106.8654 $ AIR CONV
39, AIR.10000, S25D.71, 153.2247 $ AIR CONV
40, AIR.10000, S25D.72, 151.2406 $ AIR CONV
41, AIR.10000, S25D.73, 136.0113 $ AIR CONV
42, AIR.10000, S25D.74, 217.2005 $ AIR CONV
43, AIR.10000, S25D.75, 121.0298 $ AIR CONV
44, AIR.10000, S25D.76, 178.8008 $ AIR CONV
45, AIR.10000, S25D.77, 160.7517 $ AIR CONV
46, AIR.10000, S25D.78, 132.528 $ AIR CONV
47, AIR.10000, S25D.79, 126.503 $ AIR CONV
48, AIR.10000, S25D.80, 223.1756 $ AIR CONV
49, AIR.10000, S25D.81, 151.6868 $ AIR CONV
50, AIR.10000, S25D.82, 176.8964 $ AIR CONV
51, AIR.10000, S25D.83, 155.6967 $ AIR CONV
52, AIR.10000, S25D.84, 153.6341 $ AIR CONV
53, AIR.10000, S25D.85, 110.9477 $ AIR CONV
54, AIR.10000, S25D.86, 165.114 $ AIR CONV
55, AIR.10000, S25D.87, 139.9079 $ AIR CONV
56, AIR.10000, S25D.88, 137.9431 $ AIR CONV
57, AIR.10000, S25D.89, 138.1562 $ AIR CONV
58, AIR.10000, S25D.90, 204.7094 $ AIR CONV
59, AIR.10000, S25D.91, 159.8541 $ AIR CONV
60, AIR.10000, S25D.92, 174.5026 $ AIR CONV
61, AIR.10000, S25D.93, 160.5398 $ AIR CONV
62, AIR.10000, S25D.94, 143.0478 $ AIR CONV
63, AIR.10000, S25D.95, 175.8055 $ AIR CONV
64, AIR.10000, S25D.96, 99.97353 $ AIR CONV
65, AIR.10000, S25D.97, 119.0528 $ AIR CONV
66, AIR.10000, S25D.98, 147.533 $ AIR CONV
67, AIR.10000, S25D.99, 122.7583 $ AIR CONV
68, AIR.10000, S25D.100, 191.2955 $ AIR CONV
69, AIR.10000, S25D.101, 197.3013 $ AIR CONV
70, AIR.10000, S25D.102, 173.0556 $ AIR CONV
71, AIR.10000, S25D.103, 193.2726 $ AIR CONV
72, AIR.10000, S25D.104, 128.1502 $ AIR CONV
73, AIR.10000, S25D.105, 102.519 $ AIR CONV
74, AIR.10000, S25D.106, 180.8979 $ AIR CONV
75, AIR.10000, S25D.107, 160.9948 $ AIR CONV
76, AIR.10000, S25D.108, 197.6314 $ AIR CONV
77, AIR.10000, S25D.109, 162.5766 $ AIR CONV
78, AIR.10000, S25D.110, 143.3984 $ AIR CONV
79, AIR.10000, S25D.111, 265.7273 $ AIR CONV
80, AIR.10000, S25D.112, 90.36677 $ AIR CONV
81, AIR.10000, S25D.113, 146.033 $ AIR CONV
82, AIR.10000, S25D.114, 182.0126 $ AIR CONV
83, AIR.10000, S25D.115, 142.1242 $ AIR CONV
84, AIR.10000, S25D.116, 156.4711 $ AIR CONV
85, AIR.10000, S25D.117, 263.3278 $ AIR CONV
86, AIR.10000, S25D.118, 133.7923 $ AIR CONV
87, AIR.10000, S25D.119, 134.4939 $ AIR CONV
88, AIR.10000, S25D.120, 87.09295 $ AIR CONV
89, AIR.10000, S25D.121, 168.8858 $ AIR CONV
90, AIR.10000, S25D.122, 133.792 $ AIR CONV
91, AIR.10000, S25D.123, 194.2227 $ AIR CONV
92, AIR.10000, S25D.124, 116.8372 $ AIR CONV
93, AIR.10000, S25D.125, 125.5161 $ AIR CONV
94, AIR.10000, S25D.126, 54.22872 $ AIR CONV
我想把它读入熊猫数据框,以便进一步分析。
正如您所看到的,每个子集的标题都不同,数据的格式也不同。
我想使用re模块和pandas将数据读入框架,但不知道如何以最有效的方式进行。
正如您所看到的,空气管柱对于两个头部都是通用的。在完整的文件中会有更多这样的字符串,所以我想为每个字符串创建一个类,该类的属性(节点、导体)将是一个带有相应数据的pd数据帧
任何帮助都将不胜感激:)
编辑:
根据Alexandre的建议,我稍微修改了一段代码,但仍然没有找到将数据放入类中的方法
# import modules
import pandas as pd
from io import StringIO
class TableData:
def __init__(self,name):
self.name = name
self.nodes_table = self.add_nodes()
self.conductor_table = self.add_conductors()
def add_nodes(self):
pass
def add_conductors(self):
pass
out = []
submodels = set()
with open("case1.cc", "r") as f:
sub = ""
for line in f.readlines():
if ("VARIABLES" in line) or ("OPTIONS" in line): # skip non relevant
# blocks
continue
if line.startswith('C'): # skip comments line
continue
if ("HEADER" in line) and ("DATA" in line):
# Get submodel name and add to set if not present
submodels.add(line.split(',')[1])
# Get type of data
type = line.split()[1]
# Skip first insertion
if sub != "":
out.append(sub)
sub = ""
else: sub += line
# Append last sub (outside for loop)
out.append(sub)
# "out" is a list of pandas dataframes
out = [pd.read_csv(StringIO(o), sep=r",*\s{2,}", header=None, engine="python") for o in out]
还有更完整的示例文件:
HEADER OPTIONS
C SINDA Data generated with Thermal Desktop 6.0 Patch 2
C Generated on Fri Sep 01 14:39:30 2017
C From file: thermal.dwg
C Case Set: Case Set 1
C TDUNITS, Energy = J
C TDUNITS, Time = sec
C TDUNITS, Temp = C
C TDUNITS, Mass = kg
C TDUNITS, Length = m
C TDUNITS, Orbit = km
C TDUNITS, Pressure = Pa
C TDUNITS, Force = N
C TDUNITS, Angle = Degrees
C TDUNITS, Volt = volt
C TDUNITS, Current = amp
C TDUNITS, Resistance = ohm
HEADER NODE DATA, AIR
-10000, 15., -1.0
HEADER CONDUCTOR DATA, AIR
1, AIR.10000, S25D.1, 56.84441 $ AIR CONV
2, AIR.10000, S25D.2, 56.45712 $ AIR CONV
3, AIR.10000, S25D.3, 53.35623 $ AIR CONV
4, AIR.10000, S25D.4, 45.09633 $ AIR CONV
5, AIR.10000, S25D.9, 77.00067 $ AIR CONV
6, AIR.10000, S25D.10, 80.35013 $ AIR CONV
7, AIR.10000, S25D.11, 50.4933 $ AIR CONV
8, AIR.10000, S25D.12, 91.61026 $ AIR CONV
9, AIR.10000, S25D.13, 53.75025 $ AIR CONV
10, AIR.10000, S25D.14, 75.68577 $ AIR CONV
11, AIR.10000, S25D.15, 110.0111 $ AIR CONV
12, AIR.10000, S25D.16, 114.7913 $ AIR CONV
13, AIR.10000, S25D.17, 81.12207 $ AIR CONV
14, AIR.10000, S25D.18, 72.80061 $ AIR CONV
15, AIR.10000, S25D.19, 72.21327 $ AIR CONV
16, AIR.10000, S25D.20, 90.99183 $ AIR CONV
17, AIR.10000, S25D.21, 66.35648 $ AIR CONV
18, AIR.10000, S25D.22, 76.9787 $ AIR CONV
19, AIR.10000, S25D.23, 52.46601 $ AIR CONV
20, AIR.10000, S25D.24, 68.30105 $ AIR CONV
21, AIR.10000, S25D.25, 114.0903 $ AIR CONV
22, AIR.10000, S25D.26, 70.51425 $ AIR CONV
23, AIR.10000, S25D.27, 36.39104 $ AIR CONV
24, AIR.10000, S25D.28, 78.88668 $ AIR CONV
25, AIR.10000, S25D.29, 70.77477 $ AIR CONV
26, AIR.10000, S25D.30, 87.04871 $ AIR CONV
27, AIR.10000, S25D.31, 64.50918 $ AIR CONV
28, AIR.10000, S25D.32, 76.20373 $ AIR CONV
29, AIR.10000, S25D.33, 90.69899 $ AIR CONV
30, AIR.10000, S25D.34, 83.89708 $ AIR CONV
31, AIR.10000, S25D.35, 88.59924 $ AIR CONV
32, AIR.10000, S25D.36, 72.06826 $ AIR CONV
33, AIR.10000, S25D.65, 157.6095 $ AIR CONV
34, AIR.10000, S25D.66, 140.3513 $ AIR CONV
35, AIR.10000, S25D.67, 215.1395 $ AIR CONV
36, AIR.10000, S25D.68, 131.7191 $ AIR CONV
37, AIR.10000, S25D.69, 173.7129 $ AIR CONV
38, AIR.10000, S25D.70, 106.8654 $ AIR CONV
39, AIR.10000, S25D.71, 153.2247 $ AIR CONV
40, AIR.10000, S25D.72, 151.2406 $ AIR CONV
41, AIR.10000, S25D.73, 136.0113 $ AIR CONV
42, AIR.10000, S25D.74, 217.2005 $ AIR CONV
43, AIR.10000, S25D.75, 121.0298 $ AIR CONV
44, AIR.10000, S25D.76, 178.8008 $ AIR CONV
45, AIR.10000, S25D.77, 160.7517 $ AIR CONV
46, AIR.10000, S25D.78, 132.528 $ AIR CONV
47, AIR.10000, S25D.79, 126.503 $ AIR CONV
48, AIR.10000, S25D.80, 223.1756 $ AIR CONV
49, AIR.10000, S25D.81, 151.6868 $ AIR CONV
50, AIR.10000, S25D.82, 176.8964 $ AIR CONV
51, AIR.10000, S25D.83, 155.6967 $ AIR CONV
52, AIR.10000, S25D.84, 153.6341 $ AIR CONV
53, AIR.10000, S25D.85, 110.9477 $ AIR CONV
54, AIR.10000, S25D.86, 165.114 $ AIR CONV
55, AIR.10000, S25D.87, 139.9079 $ AIR CONV
56, AIR.10000, S25D.88, 137.9431 $ AIR CONV
57, AIR.10000, S25D.89, 138.1562 $ AIR CONV
58, AIR.10000, S25D.90, 204.7094 $ AIR CONV
59, AIR.10000, S25D.91, 159.8541 $ AIR CONV
60, AIR.10000, S25D.92, 174.5026 $ AIR CONV
61, AIR.10000, S25D.93, 160.5398 $ AIR CONV
62, AIR.10000, S25D.94, 143.0478 $ AIR CONV
63, AIR.10000, S25D.95, 175.8055 $ AIR CONV
64, AIR.10000, S25D.96, 99.97353 $ AIR CONV
65, AIR.10000, S25D.97, 119.0528 $ AIR CONV
66, AIR.10000, S25D.98, 147.533 $ AIR CONV
67, AIR.10000, S25D.99, 122.7583 $ AIR CONV
68, AIR.10000, S25D.100, 191.2955 $ AIR CONV
69, AIR.10000, S25D.101, 197.3013 $ AIR CONV
70, AIR.10000, S25D.102, 173.0556 $ AIR CONV
71, AIR.10000, S25D.103, 193.2726 $ AIR CONV
72, AIR.10000, S25D.104, 128.1502 $ AIR CONV
73, AIR.10000, S25D.105, 102.519 $ AIR CONV
74, AIR.10000, S25D.106, 180.8979 $ AIR CONV
75, AIR.10000, S25D.107, 160.9948 $ AIR CONV
76, AIR.10000, S25D.108, 197.6314 $ AIR CONV
77, AIR.10000, S25D.109, 162.5766 $ AIR CONV
78, AIR.10000, S25D.110, 143.3984 $ AIR CONV
79, AIR.10000, S25D.111, 265.7273 $ AIR CONV
80, AIR.10000, S25D.112, 90.36677 $ AIR CONV
81, AIR.10000, S25D.113, 146.033 $ AIR CONV
82, AIR.10000, S25D.114, 182.0126 $ AIR CONV
83, AIR.10000, S25D.115, 142.1242 $ AIR CONV
84, AIR.10000, S25D.116, 156.4711 $ AIR CONV
85, AIR.10000, S25D.117, 263.3278 $ AIR CONV
86, AIR.10000, S25D.118, 133.7923 $ AIR CONV
87, AIR.10000, S25D.119, 134.4939 $ AIR CONV
88, AIR.10000, S25D.120, 87.09295 $ AIR CONV
89, AIR.10000, S25D.121, 168.8858 $ AIR CONV
90, AIR.10000, S25D.122, 133.792 $ AIR CONV
91, AIR.10000, S25D.123, 194.2227 $ AIR CONV
92, AIR.10000, S25D.124, 116.8372 $ AIR CONV
93, AIR.10000, S25D.125, 125.5161 $ AIR CONV
94, AIR.10000, S25D.126, 54.22872 $ AIR CONV
HEADER VARIABLES 0, U1
C Heat Load-U1 POWER[U1]::DEA
S67C.Q1 = S67C.Q1 + 27.77842
S67C.Q2 = S67C.Q2 + 83.60381
S67C.Q3 = S67C.Q3 + 54.82939
S67C.Q4 = S67C.Q4 + 38.54834
S67C.Q5 = S67C.Q5 + 27.77842
S67C.Q6 = S67C.Q6 + 27.86794
S67C.Q7 = S67C.Q7 + 54.82939
S67C.Q8 = S67C.Q8 + 63.72669
S67C.Q9 = S67C.Q9 + 112.6502
S67C.Q10 = S67C.Q10 + 44.72019
S67C.Q11 = S67C.Q11 + 56.17543
S67C.Q12 = S67C.Q12 + 37.76753
S67C.Q13 = S67C.Q13 + 41.53661
S67C.Q14 = S67C.Q14 + 38.89015
S67C.Q15 = S67C.Q15 + 56.3575
S67C.Q16 = S67C.Q16 + 134.1606
S67C.Q17 = S67C.Q17 + 112.4682
S67C.Q18 = S67C.Q18 + 62.94588
S67C.Q19 = S67C.Q19 + 124.6098
S67C.Q20 = S67C.Q20 + 64.84931
S67C.Q21 = S67C.Q21 + 173.5864
S67C.Q22 = S67C.Q22 + 289.9135
S67C.Q23 = S67C.Q23 + 173.7685
S67C.Q24 = S67C.Q24 + 96.63783
HEADER NODE DATA, U2
HEADER CONDUCTOR DATA, U2
C Contact - Face Contactor-u2 contact[U2][1]::D4B
1, S25D.101, SB82.2, 0.222749
2, S25D.101, SB82.4, 4.481803
3, S25D.101, SB82.11, 0.3112232
4, S25D.101, SB82.12, 3.869354
5, S25D.101, SB82.18, 0.1023536
6, S25D.101, SB82.19, 1.919002
7, S25D.116, SB82.2, 2.166497
8, S25D.116, SB82.9, 0.1857799
9, S25D.116, SB82.12, 0.2024991
10, S25D.116, SB82.18, 0.2656026
11, S25D.117, SB82.4, 0.3480346
12, S25D.117, SB82.11, 0.4082713
13, S25D.117, SB82.19, 0.04685081
14, S25D.123, SB82.1, 6.771217
15, S25D.123, SB82.2, 5.789176
16, S25D.123, SB82.3, 7.999367
17, S25D.123, SB82.4, 1.898946
18, S25D.123, SB82.9, 9.955903
19, S25D.123, SB82.10, 9.947601
20, S25D.123, SB82.11, 9.160776
21, S25D.123, SB82.12, 5.900825
22, S25D.123, SB82.17, 14.49436
23, S25D.123, SB82.18, 18.01836
24, S25D.123, SB82.19, 12.362
25, S25D.123, SB82.20, 18.17145
HEADER VARIABLES 0, U2
C Heat Load-u2 power[U2]::D3F
SB82.Q1 = SB82.Q1 + 13.14304
SB82.Q2 = SB82.Q2 + 24.73277
SB82.Q3 = SB82.Q3 + 23.54379
SB82.Q4 = SB82.Q4 + 13.10696
SB82.Q5 = SB82.Q5 + 23.59044
SB82.Q6 = SB82.Q6 + 13.11356
SB82.Q7 = SB82.Q7 + 13.13522
SB82.Q8 = SB82.Q8 + 23.62498
SB82.Q9 = SB82.Q9 + 17.55859
SB82.Q10 = SB82.Q10 + 25.07847
SB82.Q11 = SB82.Q11 + 25.0472
SB82.Q12 = SB82.Q12 + 25.0852
SB82.Q13 = SB82.Q13 + 35.30753
SB82.Q14 = SB82.Q14 + 25.07439
SB82.Q15 = SB82.Q15 + 25.34528
SB82.Q16 = SB82.Q16 + 25.05068
SB82.Q17 = SB82.Q17 + 49.6953
SB82.Q18 = SB82.Q18 + 45.39197
SB82.Q19 = SB82.Q19 + 53.80839
SB82.Q20 = SB82.Q20 + 33.80833
SB82.Q21 = SB82.Q21 + 41.50079
SB82.Q22 = SB82.Q22 + 33.93809
SB82.Q23 = SB82.Q23 + 53.82713
SB82.Q24 = SB82.Q24 + 36.49191
HEADER NODE DATA, U3
HEADER CONDUCTOR DATA, U3
C Contact - Face Contactor-u3 contact[U3][1]::D53
1, S25D.69, SC04.6, 35.
2, S25D.69, SC04.13, 67.97
3, S25D.69, SC04.14, 66.71
4, S25D.69, SC04.16, 8.82
5, S25D.80, SC04.8, 34.72
6, S25D.80, SC04.14, 0.49
7, S25D.80, SC04.15, 38.78
8, S25D.80, SC04.16, 37.31
9, S25D.100, SC04.7, 35.
10, S25D.100, SC04.13, 2.66
11, S25D.100, SC04.14, 121.38
12, S25D.100, SC04.15, 97.72
13, S25D.100, SC04.16, 51.94
14, S25D.111, SC04.5, 35.
15, S25D.111, SC04.8, 0.28
16, S25D.111, SC04.13, 69.37
17, S25D.111, SC04.14, 21.42
18, S25D.111, SC04.15, 3.5
19, S25D.111, SC04.16, 111.93
HEADER VARIABLES 0, U3
C Heat Load-u3 power[U3]::D40
SC04.Q1 = SC04.Q1 + 23.4375
SC04.Q2 = SC04.Q2 + 31.25
SC04.Q3 = SC04.Q3 + 15.625
SC04.Q4 = SC04.Q4 + 31.25
SC04.Q5 = SC04.Q5 + 23.4375
SC04.Q6 = SC04.Q6 + 31.25
SC04.Q7 = SC04.Q7 + 46.875
SC04.Q8 = SC04.Q8 + 31.25
SC04.Q9 = SC04.Q9 + 164.0625
SC04.Q10 = SC04.Q10 + 218.75
SC04.Q11 = SC04.Q11 + 140.625
SC04.Q12 = SC04.Q12 + 101.5625
SC04.Q13 = SC04.Q13 + 70.3125
SC04.Q14 = SC04.Q14 + 156.25
SC04.Q15 = SC04.Q15 + 109.375
SC04.Q16 = SC04.Q16 + 257.8125
SC04.Q17 = SC04.Q17 + 46.875
HEADER SUBROUTINE
SUBROUTINE TDHTR
C This routine is to hold heaters at their midpoint temps
C for steady state solutions.
RETURN
END
SUBROUTINE TDREL
C This routine is to release heaters for transient runs
C for steady state solutions.
F RETURN
F END
F SUBROUTINE TDHTOT
C This routine prints out heater ontime and cycle summaries
F RETURN
F END
F SUBROUTINE TDHTRST
C This routine resets heater statistics
F RETURN
F END
F SUBROUTINE TDPREBL
C This routine executes logic before the build statement
M CALL COMMON
F RETURN
F END
F SUBROUTINE TDPOSTBL
C This routine executes logic after the build statement
M CALL COMMON
F RETURN
F END
F SUBROUTINE TDPOSTSL
C This routine executes logic after the solution
M CALL COMMON
F RETURN
F END
F SUBROUTINE BASEPLOT
CALL COMMON
F RETURN
F END
'''
您可以尝试以下方法:
f.readlines()
标题
。
- 如果是这样,这意味着这是一个新的子df。将其添加到输出中
- Else:将当前行附加到当前子数据
sub
df列表转换为数据帧。这就解释了为什么。注:
- 使用的正则表达式是
,这意味着:,*\s{2,}
- 将任何“
”与“,
”匹配,*
- 使用
“\s{2,}
- 将任何“
- 参数
是必需的,或者第一行将用于添加列名称header=None
完整代码
# import modules
import pandas as pd
from io import StringIO
out = []
with open("data.txt", "r") as f:
sub = ""
for line in f.readlines():
if "HEADER" in line:
# Skip first insertion
if sub != "":
out.append(sub)
sub = ""
else: sub += line
# Append last sub (outside for loop)
out.append(sub)
# "out" is a list of pandas dataframes
out = [pd.read_csv(StringIO(o), sep=r",*\s{2,}", header=None, engine="python") for o in out]
print(out[0])
# 0 1 2
# 0 -10000 15.0 -1.0
print(out[1])
# 0 1 2 3 4
# 0 1 AIR.10000 S25D.1 56.84441 $ AIR CONV
# 1 2 AIR.10000 S25D.2 56.45712 $ AIR CONV
# 2 3 AIR.10000 S25D.3 53.35623 $ AIR CONV
# 3 4 AIR.10000 S25D.4 45.09633 $ AIR CONV
# 4 5 AIR.10000 S25D.9 77.00067 $ AIR CONV
# .. .. ... ... ... ...
# 89 90 AIR.10000 S25D.122 133.79200 $ AIR CONV
# 90 91 AIR.10000 S25D.123 194.22270 $ AIR CONV
# 91 92 AIR.10000 S25D.124 116.83720 $ AIR CONV
# 92 93 AIR.10000 S25D.125 125.51610 $ AIR CONV
# 93 94 AIR.10000 S25D.126 54.22872 $ AIR CONV
# [94 rows x 5 columns]
print(out[1].columns)
# Int64Index([0, 1, 2, 3, 4], dtype='int64')
希望有帮助!在第二个子集上,我看到5个数据列,但只有3个标题?每个数据列的标题是什么?标题不太重要,但为了示例起见,让我们假设有['id'、'node1'、'node2'、'value'、'comment'],只是为了弄清楚,标题只是说明下面是哪种类型的数据(节点、导体等)和集合名称(AIR)…谢谢!它成功了。但是,我仍在努力将我读取的数据分配到类的属性中,该类的名称是子集名称。在本例中,我想创建一个类`data=TableData('AIR')'哪些属性将是数据帧,他的self.name将是'AIR'。我已经编辑了您的代码并添加到我的答案中,以便更好地解释我自己。另外,请查看标题变量0 data。这是一种不同的格式,我只想将这种标题的数字(在'+'之后)复制到我的pd表中