在python中绘制多年的月度异常

在python中绘制多年的月度异常,python,python-3.x,dataframe,dataset,python-xarray,Python,Python 3.x,Dataframe,Dataset,Python Xarray,我有一个数组数据集,包含多年的月降水量数据,我想计算1887年到1889年间36个月的异常情况。如何正确执行此操作 我尝试创建了两个新的数据集,一个用于平均条件(气候学),另一个用于3年,并对它们执行以下功能。但是,我的数据输出有两个维度:月份和日期 数据被指定为变量“precip”,如下所示: <xarray.DataArray 'precipitation' (date: 1920, station_number: 42)> array([[ nan, nan, nan, .

我有一个数组数据集,包含多年的月降水量数据,我想计算1887年到1889年间36个月的异常情况。如何正确执行此操作

我尝试创建了两个新的数据集,一个用于平均条件(气候学),另一个用于3年,并对它们执行以下功能。但是,我的数据输出有两个维度:月份和日期

数据被指定为变量“precip”,如下所示:

<xarray.DataArray 'precipitation' (date: 1920, station_number: 42)>
array([[ nan,  nan,  nan, ...,  nan,  nan,  nan],
   [ nan,  nan,  nan, ...,  nan,  nan,  nan],
   [ nan,  nan,  nan, ...,  nan,  nan,  nan],
   ...,
   [ nan,  nan,  nan, ...,  nan,  nan, 41.2],
   [ nan,  nan,  nan, ...,  nan,  nan, 44. ],
   [ nan,  nan,  nan, ...,  nan,  nan, 30.2]])
Coordinates:
* date            (date) datetime64[ns] 1850-01-01 1850-02-01 ... 2009-12-01
* station_number  (station_number) object '018070' '019036' ... '095003'

#Anomaly calculation

climatology=precip.sel(date=slice('1888','1965')).groupby('date.month').mean(dim='date')
the_years=precip.sel(date=slice('1887','1889'))

percentage_anomaly=((the_years-climatology)/climatology)*100

#convert to dataframe
ppercentage.mean('station_number').to_dataframe()

您显示的代码不会产生您显示的输出。这几乎是不可能的。请更新代码,感谢您显示的代码没有产生您显示的输出。这几乎是不可能说任何关于它。已经更新了代码,谢谢
date        month  anomaly
1887-01-01  1      10
            2      20
            3      30
            4      40
            5      50
            6      60
            7      70
            8      80
            9      90
            10     100
            11     110
            12     120