<p>我设法得到了以下答案:</p>
<pre><code>import os
import pandas as pd
import re
import io
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(10,10))
df_dict = dict()
start = None
values_list = []
footage_list = []
total_footage = 0
comp_files = os.listdir('/content/sample_data/Completion/')
comp_files_list = []
for comp_file in comp_files:
comp_files_list.append(comp_file)
if '.ipynb_checkpoints' in comp_files_list:
comp_files_list.remove('.ipynb_checkpoints')
with open('/content/sample_data/Completion/{}'.format(comp_file),'r') as comp_well_file:
for i, val in enumerate(comp_well_file.read().split('\n')):
if len(val) == 0:
continue
if val.startswith('Well'):
df_name = val.split(" ")[-1]
start = i
continue
if val.startswith('MD'):
values_list = []
continue
values = [x for x in val.split(" ") if len(x) != 0]
values_list.append(values)
if len(values_list) > 1:
df_dict[df_name] = pd.DataFrame(values_list, columns=['MD in', 'MD out', 'SubZones'])
columns=['MD in', 'MD out', 'SubZones']
for key in df_dict.keys():
for column in columns:
for row in df_dict[key][column].index:
if df_dict[key][column][row] == '3.000000':
footage = float(df_dict[key]['MD out'][row]) - float(df_dict[key]['MD in'][row])
total_footage = total_footage + footage
footage_list.append('{}, {} \n'.format(key,total_footage))
total_footage = 0
for i, item in enumerate(footage_list):
print(item)
#print(footage_list)
#print(footage_list[0])
#df_total_footage = pd.DataFrame(footage_list, columns = ['well_name', 'Total_Footage_in_subzone_of_interest'])
#print(df_total_footage)
</code></pre>
<p>输出结果如下所示:</p>
<p>001井,933.7765628900015</p>
<p>井-002,2058.36714124</p>
<p>。
.
. </p>