我把卫星数据存储在一个数据框里。通常情况下,这个数据帧会被切片,以便逐日进行imshow绘图,这很简单。然而,我想绘制数据的年度平均值,这是我目前的困境。dataframe有一个多级索引(datetime,纬度坐标),其中列组成经度坐标。你知道吗
import pandas as pd, numpy as np
dates = pd.date_range('20140101',periods=10,freq='1D')
others = np.arange(0,5)
index = [(d,o) for o in others for d in dates]
index = pd.MultiIndex.from_tuples(index, names=['DATES','LAT'])
data = np.random.randint(0,20,(50,10))
df = pd.DataFrame(data=data,index=index,columns=np.arange(0,10))
df.columns.names = ['LON']
如果我使用的是数组,我通常会沿着第三维度堆叠它们,然后在第三维度上求平均值。e、 g
mat = np.ones( (5,10,1) )
# stack on day-by-day basis so lat/lon pairs sit on top of each other
# on the third dimension
for heute in df.index.get_level_values(0).unique():
tmp = df.xs(heute, level=0)
mat = np.dstack( (mat,tmp.as_matrix()) )
ave = mat[:,:,1:].mean(axis=2)
虽然这会奏效,但我怀疑熊猫体内有一种方法可以做到这一点。然而,对于这一点我不知道从何说起。我曾经玩过groupby和resample,但我一直无法让它们发挥作用。任何帮助都将不胜感激。你知道吗
我们开始吧:
由此产生:
当你的阵法产生:
相关问题 更多 >
编程相关推荐