与大熊猫切,GROUPBY和多指标在Python
问题描述:
怪异的行为我有这样一个数据帧,与大熊猫切,GROUPBY和多指标在Python
Continent % Renewable
Country
China Asia 2
United States North America 1
Japan Asia 1
United Kingdom Europe 1
Russian Federation Europe 2
Canada North America 5
Germany Europe 2
India Asia 1
France Europe 2
South Korea Asia 1
Italy Europe 3
Spain Europe 3
Iran Asia 1
Australia Australia 1
Brazil South America 5
其中% Renewable
是使用切换功能创建了一列,
Top15['% Renewable'] = pd.cut(Top15['% Renewable'], 5, labels=range(1,6))
当我通过Continent
和% Renewable
组来计算每个子集中我所做的国家数量,
count_groups = Top15.groupby(['Continent', '% Renewable']).size()
是,
Continent % Renewable
Asia 1 4
2 1
Australia 1 1
Europe 1 1
2 3
3 2
North America 1 1
5 1
South America 5 1
奇怪的是索引现在,如果我索引值的类别值> 0这给了我的价值,
count_groups.loc['Asia', 1]
>> 4
如果不是,
count_groups.loc['Asia', 3]
>> IndexingError: Too many indexers
它不应该给我一个0,因为该类别中没有条目吗?我会假设,因为该数据框是使用groupby创建的。
如果没有,任何人都可以建议一个程序,以便我可以保留012r类别的国家0号?
答
你有一个MultiIndex系列。通常,我们使用元组索引来处理MultiIndexes,但熊猫可以灵活处理。
在我看来,count_groups.loc[('Asia', 3)]
应该引发KeyError,因为这对没有出现在索引中,但这是熊猫开发者决定我猜的。
从一系列返回默认值,我们可以使用get
就像我们在字典做:
count_groups.get(('Asia', 3), 0)
这将返回0,如果该键不存在。
尝试'count_groups.get((''Asia',3),0)' – ayhan
我想这将是答案,谢谢 – SamuelNLP