擅长:python、mysql、java
<p>首先拆分<code>text</code>的行并将它们分组到按句点拆分的列表中,然后将列表中的句子按双空格拆分,同时从尾部空格中剥离结果。列一个清单:</p>
<pre><code>data = [[[i.strip() for i in x.split(" ") if i] for x in list(g)] for k, g in groupby(text.splitlines()[1:], lambda x: x != ".") if k]
</code></pre>
<p>这将输出:</p>
<pre><code>[[['Well name:', 'Well-001'],
['MD in', 'MD out', 'SubZones'],
['7556.48523572', '7558.27620486', '1.000000'],
['7558.27620486', '7560.06788752', '2.000000']],
[['Well name:', 'Well-100'],
['MD in', 'MD out', 'SubZones'],
['7556.48523572', '7558.27620486', '1.000000'],
</code></pre>
<p>然后,您可以创建一个dict,井名称作为键,数据帧作为值:</p>
<pre><code>dataframes = {}
for item in data:
dataframes[item[0][1]] = pd.DataFrame(item[2:], columns=item[1])
</code></pre>
<p>您现在可以通过dict中的井名称访问数据帧。<code>dataframes['Well-001'].head()</code>将输出:</p>
<pre><code>| | MD in | MD out | SubZones |
| -:| :| -:| -:|
| 0 | 7556.49 | 7558.28 | 1 |
| 1 | 7558.28 | 7560.07 | 2 |
</code></pre>