|
16 | 16 | from adaptive.learner.triangulation import simplex_volume_in_embedding |
17 | 17 | from adaptive.notebook_integration import ensure_holoviews |
18 | 18 | from adaptive.types import Float, Int, Real |
19 | | -from adaptive.utils import assign_defaults, cache_latest |
| 19 | +from adaptive.utils import ( |
| 20 | + assign_defaults, |
| 21 | + cache_latest, |
| 22 | + partial_function_from_dataframe, |
| 23 | +) |
20 | 24 |
|
21 | 25 | try: |
22 | 26 | import pandas |
@@ -339,12 +343,26 @@ def to_dataframe( |
339 | 343 | if not with_pandas: |
340 | 344 | raise ImportError("pandas is not installed.") |
341 | 345 | xs, ys = zip(*sorted(self.data.items())) if self.data else ([], []) |
342 | | - df = pandas.DataFrame(xs, columns=["x"]) |
| 346 | + df = pandas.DataFrame(xs, columns=[x_name]) |
343 | 347 | df[y_name] = ys |
344 | 348 | if with_default_function_args: |
345 | 349 | assign_defaults(self.function, df, function_prefix) |
346 | 350 | return df |
347 | 351 |
|
| 352 | + def load_dataframe( |
| 353 | + self, |
| 354 | + df, |
| 355 | + with_default_function_args: bool = True, |
| 356 | + function_prefix: str = "function.", |
| 357 | + x_name: str = "x", |
| 358 | + y_name: str = "y", |
| 359 | + ): |
| 360 | + self.tell_many(df[x_name].values, df[y_name].values) |
| 361 | + if with_default_function_args: |
| 362 | + self.function = partial_function_from_dataframe( |
| 363 | + self.function, df, function_prefix |
| 364 | + ) |
| 365 | + |
348 | 366 | @property |
349 | 367 | def npoints(self) -> int: |
350 | 368 | """Number of evaluated points.""" |
|
0 commit comments