Seems like pandas in the latest versions raises an error when trying to merge the measured and calcualted frequency columns when astroquery returns the Splatalogue query.
The error stack:
ValueError Traceback (most recent call last)
<ipython-input-30-ec137040be31> in <module>
1 # this runs through splatalogue
----> 2 session.process_splatalogue(auto=True)
~\anaconda3\lib\site-packages\pyspectools\spectra\assignment.py in process_splatalogue(self, auto, progressbar)
2211 else:
2212 width = self.session.freq_prox * frequency
-> 2213 splat_df = analysis.search_center_frequency(frequency, width=width)
2214 if splat_df is not None:
2215 # Filter out lines that are way too unlikely on grounds of temperature
~\anaconda3\lib\site-packages\pyspectools\spectra\analysis.py in search_center_frequency(frequency, width)
294 if splat_df.isna().any().sum():
295 # Replace missing experimental data with calculated
--> 296 splat_df["Frequency"].fillna(splat_df["Freq-GHz"], inplace=True)
297 # Convert to MHz
298 splat_df["Frequency"] *= 1000.
~\anaconda3\lib\site-packages\pandas\core\series.py in fillna(self, value, method, axis, inplace, limit, downcast)
4461 downcast=None,
4462 ) -> Optional["Series"]:
-> 4463 return super().fillna(
4464 value=value,
4465 method=method,
~\anaconda3\lib\site-packages\pandas\core\generic.py in fillna(self, value, method, axis, inplace, limit, downcast)
6406 )
6407
-> 6408 new_data = self._mgr.fillna(
6409 value=value, limit=limit, inplace=inplace, downcast=downcast
6410 )
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in fillna(self, value, limit, inplace, downcast)
619
620 def fillna(self, value, limit, inplace: bool, downcast) -> "BlockManager":
--> 621 return self.apply(
622 "fillna", value=value, limit=limit, inplace=inplace, downcast=downcast
623 )
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in apply(self, f, align_keys, ignore_failures, **kwargs)
425 applied = b.apply(f, **kwargs)
426 else:
--> 427 applied = getattr(b, f)(**kwargs)
428 except (TypeError, NotImplementedError):
429 if not ignore_failures:
~\anaconda3\lib\site-packages\pandas\core\internals\blocks.py in fillna(self, value, limit, inplace, downcast)
441 if self._can_hold_element(value):
442 nb = self if inplace else self.copy()
--> 443 nb._putmask_simple(mask, value)
444 # TODO: should be nb._maybe_downcast?
445 return self._maybe_downcast([nb], downcast)
~\anaconda3\lib\site-packages\pandas\core\internals\blocks.py in _putmask_simple(self, mask, value)
1067 else:
1068 # GH#37833 np.putmask is more performant than __setitem__
-> 1069 np.putmask(values, mask, value)
1070
1071 def putmask(
<__array_function__ internals> in putmask(*args, **kwargs)
~\anaconda3\lib\site-packages\pandas\core\arrays\masked.py in __array__(self, dtype)
237 We return an object array here to preserve our scalar values
238 """
--> 239 return self.to_numpy(dtype=dtype)
240
241 def __arrow_array__(self, type=None):
~\anaconda3\lib\site-packages\pandas\core\arrays\masked.py in to_numpy(self, dtype, copy, na_value)
218 and na_value is libmissing.NA
219 ):
--> 220 raise ValueError(
221 f"cannot convert to '{dtype}'-dtype NumPy array "
222 "with missing values. Specify an appropriate 'na_value' "
ValueError: cannot convert to 'float64'-dtype NumPy array with missing values. Specify an appropriate 'na_value' for this dtype.
Seems like
pandas
in the latest versions raises an error when trying to merge the measured and calcualted frequency columns whenastroquery
returns the Splatalogue query.The error stack: