回答編集履歴
1
コード修正
answer
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
以下のような感じで正規表現で`=~改行~改行改行`の単位で抽出していけばよいかと思います。
|
2
2
|
```Python
|
3
3
|
import re
|
4
|
+
from io import StringIO
|
4
5
|
|
5
6
|
# テストデータ
|
6
7
|
s = """data (A) = 8.449E-19 -1.406E-04 -1.711E-04 8.832E-04 1.156E-03
|
@@ -17,15 +18,12 @@
|
|
17
18
|
def to_list(s):
|
18
19
|
return [float(e) for e in re.split(r'\s+', s.strip(' '))]
|
19
20
|
|
20
|
-
|
21
|
+
data = {}
|
21
|
-
for m in re.finditer(r'=(.*?)\n(.*?)\n\n', datas, re.MULTILINE):
|
22
|
+
for m in re.finditer(r'data ((.*?)).*?=(.*?)\n(.*?)\n\n', datas, re.MULTILINE):
|
22
|
-
line = to_list(m.group(
|
23
|
+
line = to_list(m.group(2)) + to_list(m.group(3)) # 2行 -> 1行の数値リストに
|
23
|
-
|
24
|
+
data[m.group(1)] = line
|
24
25
|
|
25
|
-
# あとは好きに加工
|
26
|
-
df = pd.DataFrame(ret)
|
27
|
-
print(
|
26
|
+
print(data)
|
28
|
-
# 0 1 2 3 4 5 6 7 8 9
|
29
|
-
#
|
27
|
+
#{'A': [8.449e-19, -0.0001406, -0.0001711, 0.0008832, 0.001156, 0.001985, 0.001051, 0.0008782, 0.0005164, 0.0003921], 'B'
|
30
|
-
#
|
28
|
+
#: [-9.936e-06, -0.0001504, -0.0001712, 0.000898, 0.001274, 0.002044, 0.00104, 0.0008514, 0.0004703, 0.00037]}
|
31
29
|
```
|