MCPcopy Index your code
hub / github.com/pydata/xarray / compare_against_pandas

Function compare_against_pandas

xarray/tests/test_cftimeindex_resample.py:77–124  ·  view source on GitHub ↗
(
    da_datetimeindex,
    da_cftimeindex,
    freq,
    closed=None,
    label=None,
    offset=None,
    origin=None,
)

Source from the content-addressed store, hash-verified

75
76
77def compare_against_pandas(
78 da_datetimeindex,
79 da_cftimeindex,
80 freq,
81 closed=None,
82 label=None,
83 offset=None,
84 origin=None,
85) -> None:
86 if isinstance(origin, tuple):
87 origin_pandas = pd.Timestamp(datetime.datetime(*origin))
88 origin_cftime = cftime.DatetimeGregorian(*origin)
89 else:
90 origin_pandas = origin
91 origin_cftime = origin
92
93 try:
94 result_datetimeindex = da_datetimeindex.resample(
95 time=freq,
96 closed=closed,
97 label=label,
98 offset=offset,
99 origin=origin_pandas,
100 ).mean()
101 except ValueError:
102 with pytest.raises(ValueError):
103 da_cftimeindex.resample(
104 time=freq,
105 closed=closed,
106 label=label,
107 origin=origin_cftime,
108 offset=offset,
109 ).mean()
110 else:
111 result_cftimeindex = da_cftimeindex.resample(
112 time=freq,
113 closed=closed,
114 label=label,
115 origin=origin_cftime,
116 offset=offset,
117 ).mean()
118 # TODO (benbovy - flexible indexes): update when CFTimeIndex is an xarray Index subclass
119 result_cftimeindex["time"] = (
120 result_cftimeindex.xindexes["time"]
121 .to_pandas_index()
122 .to_datetimeindex(time_unit="ns")
123 )
124 xr.testing.assert_identical(result_cftimeindex, result_datetimeindex)
125
126
127def da(index) -> xr.DataArray:

Calls 4

to_datetimeindexMethod · 0.80
meanMethod · 0.45
resampleMethod · 0.45
to_pandas_indexMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…