Fix: remove NaN output of components. (#6079)

### What problem does this PR solve?

#6065

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
Kevin Hu 2025-03-14 13:58:42 +08:00 committed by GitHub
parent 56b228f187
commit 12c3023a22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -429,7 +429,7 @@ class ComponentBase(ABC):
if not isinstance(o, partial): if not isinstance(o, partial):
if not isinstance(o, pd.DataFrame): if not isinstance(o, pd.DataFrame):
if isinstance(o, list): if isinstance(o, list):
return self._param.output_var_name, pd.DataFrame(o) return self._param.output_var_name, pd.DataFrame(o).dropna()
if o is None: if o is None:
return self._param.output_var_name, pd.DataFrame() return self._param.output_var_name, pd.DataFrame()
return self._param.output_var_name, pd.DataFrame([{"content": str(o)}]) return self._param.output_var_name, pd.DataFrame([{"content": str(o)}])
@ -437,15 +437,15 @@ class ComponentBase(ABC):
if allow_partial or not isinstance(o, partial): if allow_partial or not isinstance(o, partial):
if not isinstance(o, partial) and not isinstance(o, pd.DataFrame): if not isinstance(o, partial) and not isinstance(o, pd.DataFrame):
return pd.DataFrame(o if isinstance(o, list) else [o]) return pd.DataFrame(o if isinstance(o, list) else [o]).dropna()
return self._param.output_var_name, o return self._param.output_var_name, o
outs = None outs = None
for oo in o(): for oo in o():
if not isinstance(oo, pd.DataFrame): if not isinstance(oo, pd.DataFrame):
outs = pd.DataFrame(oo if isinstance(oo, list) else [oo]) outs = pd.DataFrame(oo if isinstance(oo, list) else [oo]).dropna()
else: else:
outs = oo outs = oo.dropna()
return self._param.output_var_name, outs return self._param.output_var_name, outs
def reset(self): def reset(self):