根据长度删除索引



我有一个以下类型的多指数面板时间序列数据,country IDyear:

arrays = [['country i', 'country i', 'country i', 'country j', 'country j', 'country j', 'country e'], 
[1999,2000,2001,1999,2000,2001,2000]]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=["country ID", "year"])
dfx = pd.Series(np.random.randn(7), index=index)
print(dfx)
country ID  year
country i   1999    0.572030
2000    1.736893
2001   -1.213016
country j   1999    0.167581
2000   -1.178015
2001   -1.470233
country e   2000    1.298953
dtype: float64

我想删除,例如,所有少于2个观测值的国家id。如何过滤数据框架,使观测值不小于2的国家ID不存在。在上面的例子中,country e应该从数据集。

事先谢谢你!

一种方法是:

mask = dfx.groupby(level=0).transform("count") >= 2
print(dfx[mask])

country ID  year
country i   1999   -1.259176
2000    0.123215
1999    0.899501
country j   2000   -0.111309
1999    2.260785
2000   -0.460683
dtype: float64

相关内容

  • 没有找到相关文章

最新更新