富小能 发表于 2024-5-16 14:06 
起码把引发错误的语句简单写出来吧
代码如下:
from concurrent.futures import ProcessPoolExecutor
from frds.measures import LRMES
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def compute_lrmes_for_date(args):
date, data = args
if date.year < 2007:
return None
sub_data = data.loc[:date]
lrmes = LRMES(sub_data["Rccb"], sub_data["Rhs300"]).estimate(h=22 * 6, C=-0.4)
print((date, lrmes))
return (date, lrmes)
if __name__ == "__main__":
data=pd.read_excel(r'C:\Users\Administrator\Desktop\test2.xlsx')
with ProcessPoolExecutor() as executor:
lrmes_values = list(
executor.map(
compute_lrmes_for_date,
[(d, data) for d in data.index.unique()],
)
)
lrmes_values = [x for x in lrmes_values if x is not None]
lrmes_df = pd.DataFrame(lrmes_values, columns=["Date", "LRMES"]).set_index("Date")
data = pd.merge_asof(data, lrmes_df, left_index=True, right_index=True, direction="backward")
运行错误提示如下:
Traceback (most recent call last):
File "<pyshell#26>", line 4, in <module>
lrmes_values = list(
File "C:\Program Files\Python311\Lib\concurrent\futures\process.py", line 620, in _chain_from_iterable_of_lists
for element in iterable:
File "C:\Program Files\Python311\Lib\concurrent\futures\_base.py", line 619, in result_iterator
yield _result_or_cancel(fs.pop())
File "C:\Program Files\Python311\Lib\concurrent\futures\_base.py", line 317, in _result_or_cancel
return fut.result(timeout)
File "C:\Program Files\Python311\Lib\concurrent\futures\_base.py", line 456, in result
return self.__get_result()
File "C:\Program Files\Python311\Lib\concurrent\futures\_base.py", line 401, in __get_result
raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.