回答編集履歴

2

.

2019/11/18 02:41

投稿

tachikoma
tachikoma

スコア3601

test CHANGED
@@ -68,11 +68,7 @@
68
68
 
69
69
  nSkiprow += 1
70
70
 
71
- if not line.startswith("データ"):
71
+ if line.startswith("データ"):
72
-
73
- continue
74
-
75
- else:
76
72
 
77
73
  break
78
74
 
@@ -80,8 +76,46 @@
80
76
 
81
77
  # 上で求めた行数をスキップしてread_tableで読み込む
82
78
 
83
- f = io.StringIO(s
79
+ f = io.StringIO(s)
84
80
 
85
81
  df = pandas.read_table(f, skiprows=nSkiprow)
86
82
 
87
83
  ```
84
+
85
+
86
+
87
+ ----
88
+
89
+
90
+
91
+ StringIOを省くとこうなります。
92
+
93
+
94
+
95
+ ```python
96
+
97
+ filename = "text.TXT"
98
+
99
+
100
+
101
+ # "データ"までの行数をカウント
102
+
103
+ with open(filename) as f:
104
+
105
+ nSkiprow = 0
106
+
107
+ for line in f.readlines():
108
+
109
+ nSkiprow += 1
110
+
111
+ if line.startswith("データ"):
112
+
113
+ break
114
+
115
+
116
+
117
+ # 上で求めた行数をスキップしてread_tableで読み込む
118
+
119
+ df = pandas.read_table(filename, skiprows=nSkiprow)
120
+
121
+ ```

1

2019/11/18 02:41

投稿

tachikoma
tachikoma

スコア3601

test CHANGED
@@ -3,3 +3,85 @@
3
3
 
4
4
 
5
5
  [https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_table.html](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_table.html)
6
+
7
+
8
+
9
+
10
+
11
+ ----
12
+
13
+
14
+
15
+ 下記のioモジュールはファイルオープンなどに適宜読み替えてください。
16
+
17
+
18
+
19
+ ```python
20
+
21
+ import io
22
+
23
+ import pandas
24
+
25
+
26
+
27
+ s = """サンプル: A
28
+
29
+ ファイル名: B
30
+
31
+ オペレータ: C
32
+
33
+
34
+
35
+ ピーク No. ピーク (nm) 高さ (%)
36
+
37
+ 1      1000   90
38
+
39
+ 2      2000   80
40
+
41
+ 3      3000   70
42
+
43
+
44
+
45
+ データ
46
+
47
+ nm %
48
+
49
+ 0 95
50
+
51
+ 100 94
52
+
53
+ 200 93"""
54
+
55
+
56
+
57
+ f = io.StringIO(s) # ファイルオープンと思ってください
58
+
59
+
60
+
61
+ # データをまでの行数をカウントする
62
+
63
+ nSkiprow = 0
64
+
65
+
66
+
67
+ for line in f.readlines():
68
+
69
+ nSkiprow += 1
70
+
71
+ if not line.startswith("データ"):
72
+
73
+ continue
74
+
75
+ else:
76
+
77
+ break
78
+
79
+
80
+
81
+ # 上で求めた行数をスキップしてread_tableで読み込む
82
+
83
+ f = io.StringIO(s
84
+
85
+ df = pandas.read_table(f, skiprows=nSkiprow)
86
+
87
+ ```