55`Pint's Pandas interface <https://pint.readthedocs.io/en/0.13/pint-pandas.html>`_
66to handle unit conversions automatically
77"""
8+
89import warnings
910
1011import numpy as np
@@ -113,10 +114,9 @@ def _perform_op(base, other, op, use_pint_units=True):
113114 elif op == "subtract" :
114115 out .append (base [col ] - other [col ])
115116
116- except KeyError :
117- raise KeyError ( # noqa: TRY200
118- f"No equivalent in `other` for { list (zip (col_names , col ))} "
119- )
117+ except KeyError as exc :
118+ msg = f"No equivalent in `other` for { list (zip (col_names , col ))} "
119+ raise KeyError (msg ) from exc
120120
121121 elif op == "multiply" :
122122 out .append (base [col ] * other [col ])
@@ -227,17 +227,17 @@ def subtract(self, other, op_cols, **kwargs):
227227 >>> fos_minus_afolu.head()
228228 time 2010-01-01 2020-01-01
229229 model region scenario unit variable
230- idealised World|NH idealised gigatC / a Emissions|CO2|Fossil - AFOLU -0.001 3.995
231- World|SH idealised gigatC / a Emissions|CO2|Fossil - AFOLU 1.997 5.993
230+ idealised World|NH idealised gigatC / yr Emissions|CO2|Fossil - AFOLU -0.001 3.995
231+ World|SH idealised gigatC / yr Emissions|CO2|Fossil - AFOLU 1.997 5.993
232232
233233 >>> nh = start.filter(region="World|NH")
234234 >>> sh = start.filter(region="World|SH")
235235 >>> nh_minus_sh = nh.subtract(sh, op_cols={"region": "World|NH - SH"})
236236 >>> nh_minus_sh.head()
237237 time 2010-01-01 2020-01-01
238238 model region scenario unit variable
239- idealised World|NH - SH idealised gigatC / a Emissions|CO2|Fossil -2.0 -2.0
240- megatC / a Emissions|CO2|AFOLU -2.0 -2.0
239+ idealised World|NH - SH idealised gigatC / yr Emissions|CO2|Fossil -2.0 -2.0
240+ megatC / yr Emissions|CO2|AFOLU -2.0 -2.0
241241 """
242242 out = _perform_op (
243243 prep_for_op (self , op_cols , self .meta .columns , ** kwargs ),
@@ -336,17 +336,17 @@ def add(self, other, op_cols, **kwargs):
336336 >>> fos_plus_afolu.head()
337337 time 2010-01-01 2020-01-01
338338 model region scenario unit variable
339- idealised World|NH idealised gigatC / a Emissions|CO2|Fossil + AFOLU 0.001 4.005
340- World|SH idealised gigatC / a Emissions|CO2|Fossil + AFOLU 2.003 6.007
339+ idealised World|NH idealised gigatC / yr Emissions|CO2|Fossil + AFOLU 0.001 4.005
340+ World|SH idealised gigatC / yr Emissions|CO2|Fossil + AFOLU 2.003 6.007
341341
342342 >>> nh = start.filter(region="World|NH")
343343 >>> sh = start.filter(region="World|SH")
344344 >>> nh_plus_sh = nh.add(sh, op_cols={"region": "World|NH + SH"})
345345 >>> nh_plus_sh.head()
346346 time 2010-01-01 2020-01-01
347347 model region scenario unit variable
348- idealised World|NH + SH idealised gigatC / a Emissions|CO2|Fossil 2.0 10.0
349- megatC / a Emissions|CO2|AFOLU 4.0 12.0
348+ idealised World|NH + SH idealised gigatC / yr Emissions|CO2|Fossil 2.0 10.0
349+ megatC / yr Emissions|CO2|AFOLU 4.0 12.0
350350 """
351351 out = _perform_op (
352352 prep_for_op (self , op_cols , self .meta .columns , ** kwargs ),
@@ -544,14 +544,14 @@ def divide(self, other, op_cols, **kwargs):
544544 World|SH idealised MtC / yr Emissions|CO2|AFOLU 3.0 7.0
545545
546546 >>> fos_divide_afolu = fos.divide(
547- ... afolu, op_cols={"variable": "Emissions|CO2|Fossil / AFOLU "}
547+ ... afolu, op_cols={"variable": "Emissions|CO2|Fossil / yrFOLU "}
548548 ... )
549549 >>> # The rows align and the units are handled automatically
550550 >>> fos_divide_afolu.convert_unit("dimensionless").head()
551551 time 2010-01-01 2020-01-01
552552 model region scenario unit variable
553- idealised World|NH idealised dimensionless Emissions|CO2|Fossil / AFOLU 0.000000 800.000000
554- World|SH idealised dimensionless Emissions|CO2|Fossil / AFOLU 666.666667 857.142857
553+ idealised World|NH idealised dimensionless Emissions|CO2|Fossil / yrFOLU 0.000000 800.000000
554+ World|SH idealised dimensionless Emissions|CO2|Fossil / yrFOLU 666.666667 857.142857
555555
556556 >>> nh = start.filter(region="World|NH")
557557 >>> sh = start.filter(region="World|SH")
@@ -597,7 +597,7 @@ def cumsum(self, out_var=None, check_annual=True):
597597 arbitrary day/month of the year has not been implemented, if that would be
598598 useful raise an issue on GitHub.
599599
600- If the timeseries are piecewise-linear, :meth:`cumtrapz ` should be used instead.
600+ If the timeseries are piecewise-linear, :meth:`cumulative_trapezoid ` should be used instead.
601601
602602 Parameters
603603 ----------
@@ -618,7 +618,7 @@ def cumsum(self, out_var=None, check_annual=True):
618618
619619 See Also
620620 --------
621- :func:`cumtrapz `
621+ :func:`cumulative_trapezoid `
622622
623623 Raises
624624 ------
@@ -677,7 +677,7 @@ def cumsum(self, out_var=None, check_annual=True):
677677 return out
678678
679679
680- def cumtrapz (self , out_var = None ):
680+ def cumulative_trapezoid (self , out_var = None ):
681681 """
682682 Integrate with respect to time using the trapezoid rule
683683
@@ -743,7 +743,9 @@ def cumtrapz(self, out_var=None):
743743 # some thinking about unit handling
744744 _initial = 0.0
745745 out = pd .DataFrame (
746- scipy .integrate .cumtrapz (y = ts , x = times_in_s , axis = 1 , initial = _initial )
746+ scipy .integrate .cumulative_trapezoid (
747+ y = ts , x = times_in_s , axis = 1 , initial = _initial
748+ )
747749 )
748750 out .index = ts .index
749751 out .columns = ts .columns
@@ -790,7 +792,7 @@ def integrate(self, out_var=None):
790792 See Also
791793 --------
792794 :meth:`cumsum`
793- :meth:`cumtrapz `
795+ :meth:`cumulative_trapezoid `
794796
795797 Raises
796798 ------
@@ -805,14 +807,14 @@ def integrate(self, out_var=None):
805807 data will also contain nans.
806808 DeprecationWarning
807809 This function has been deprecated in preference to :meth:`cumsum` and
808- :meth:`cumtrapz `.
810+ :meth:`cumulative_trapezoid `.
809811 """
810812 warnings .warn (
811- "integrate has been deprecated in preference of cumsum and cumtrapz " ,
813+ "integrate has been deprecated in preference of cumsum and cumulative_trapezoid " ,
812814 DeprecationWarning ,
813815 )
814816
815- return cumtrapz (self , out_var )
817+ return cumulative_trapezoid (self , out_var )
816818
817819
818820def delta_per_delta_time (self , out_var = None ):
@@ -1144,7 +1146,7 @@ def inject_ops_methods(cls):
11441146 ("divide" , divide ),
11451147 ("integrate" , integrate ),
11461148 ("cumsum" , cumsum ),
1147- ("cumtrapz " , cumtrapz ),
1149+ ("cumulative_trapezoid " , cumulative_trapezoid ),
11481150 ("delta_per_delta_time" , delta_per_delta_time ),
11491151 ("linear_regression" , linear_regression ),
11501152 ("linear_regression_gradient" , linear_regression_gradient ),
0 commit comments