熊猫字典的分层索引

加里东尼亚26

我有以下字典:

ContinentDict  = {'China':'Asia', 
                  'United States':'North America', 
                  'Japan':'Asia', 
                  'United Kingdom':'Europe', 
                  'Russian Federation':'Europe', 
                  'Canada':'North America', 
                  'Germany':'Europe', 
                  'India':'Asia',
                  'France':'Europe', 
                  'South Korea':'Asia', 
                  'Italy':'Europe', 
                  'Spain':'Europe', 
                  'Iran':'Asia',
                  'Australia':'Australia', 
                  'Brazil':'South America'}

我已将本词典中国家(关键字)分类大洲(值)

from collections import defaultdict
dictionary = defaultdict(list)
for key, value in ContinentDict.items(): 
    dictionary[value].append(key)

这给了我:

dictionary
defaultdict(<class 'list'>, {'Asia': ['China', 'Japan', 'India', 'South Korea', 'Iran'], 'North America': ['United States', 'Canada'], 'Europe': ['United Kingdom', 'Russian Federation', 'Germany', 'France', 'Italy', 'Spain'], 'Australia': ['Australia'], 'South America': ['Brazil']})

我也有熊猫系列Reducedset ['estimate']:

Country
China                 1.36765e+09
United States         3.17615e+08
Japan                 1.27409e+08
United Kingdom         6.3871e+07
Russian Federation      1.435e+08
Canada                3.52399e+07
Germany               8.03697e+07
India                 1.27673e+09
France                6.38373e+07
South Korea           4.98054e+07
Italy                 5.99083e+07
Spain                 4.64434e+07
Iran                  7.70756e+07
Australia              2.3316e+07
Brazil                2.05915e+08
Name: estimate, dtype: object

我想从此字典创建层次结构索引,以大陆为层次结构的顶部,然后是国家。

我尝试了以下方法:

totuple = dictionary.items()
index = pd.MultiIndex.from_tuples(index)
hierarchy = pop.reindex(index)

但是,这没有用。

有人可以帮我吗?

耶斯列尔

创建元组列表并传递给MultiIndex.from_tuples

t = [(k, x) for k, v in dictionary.items() for x in v]
index = pd.MultiIndex.from_tuples(t)
print (index)
MultiIndex([(         'Asia',              'China'),
            (         'Asia',              'Japan'),
            (         'Asia',              'India'),
            (         'Asia',        'South Korea'),
            (         'Asia',               'Iran'),
            ('North America',      'United States'),
            ('North America',             'Canada'),
            (       'Europe',     'United Kingdom'),
            (       'Europe', 'Russian Federation'),
            (       'Europe',            'Germany'),
            (       'Europe',             'France'),
            (       'Europe',              'Italy'),
            (       'Europe',              'Spain'),
            (    'Australia',          'Australia'),
            ('South America',             'Brazil')],
           )

接着:

Reducedset = Reducedset.reindex(index, level=1)
print (Reducedset)
                                      estimate
Asia          China               1.367650e+09
              Japan               1.274090e+08
              India               1.276730e+09
              South Korea         4.980540e+07
              Iran                7.707560e+07
North America United States       3.176150e+08
              Canada              3.523990e+07
Europe        United Kingdom      6.387100e+07
              Russian Federation  1.435000e+08
              Germany             8.036970e+07
              France              6.383730e+07
              Italy               5.990830e+07
              Spain               4.644340e+07
Australia     Australia           2.331600e+07
South America Brazil              2.059150e+08

另一个想法是map由原始字典使用

ContinentDict  = {'China':'Asia', 
                  'United States':'North America', 
                  'Japan':'Asia', 
                  'United Kingdom':'Europe', 
                  'Russian Federation':'Europe', 
                  'Canada':'North America', 
                  'Germany':'Europe', 
                  'India':'Asia',
                  'France':'Europe', 
                  'South Korea':'Asia', 
                  'Italy':'Europe', 
                  'Spain':'Europe', 
                  'Iran':'Asia',
                  'Australia':'Australia', 
                  'Brazil':'South America'}


d = {'estimate': {'China': 1367650000.0, 'United States': 317615000.0, 'Japan': 127409000.0, 'United Kingdom': 63871000.0, 'Russian Federation': 143500000.0, 'Canada': 35239900.0, 'Germany': 80369700.0, 'India': 1276730000.0, 'France': 63837300.0, 'South Korea': 49805400.0, 'Italy': 59908300.0, 'Spain': 46443400.0, 'Iran': 77075600.0, 'Australia': 23316000.0, 'Brazil': 205915000.0}}

Reducedset = pd.DataFrame(d)

idx = Reducedset.index.map(ContinentDict)
Reducedset.index = [idx, Reducedset.index]
Reducedset = Reducedset.sort_index()
print (Reducedset)
                                      estimate
Asia          China               1.367650e+09
              India               1.276730e+09
              Iran                7.707560e+07
              Japan               1.274090e+08
              South Korea         4.980540e+07
Australia     Australia           2.331600e+07
Europe        France              6.383730e+07
              Germany             8.036970e+07
              Italy               5.990830e+07
              Russian Federation  1.435000e+08
              Spain               4.644340e+07
              United Kingdom      6.387100e+07
North America Canada              3.523990e+07
              United States       3.176150e+08
South America Brazil              2.059150e+08

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫中的分层/多索引操作

来自分类Dev

熊猫分层索引唯一值

来自分类Dev

绘制分层索引的熊猫数据框

来自分类Dev

分层字典

来自分类Dev

熊猫multiindex(分层索引)减去列并追加结果

来自分类Dev

熊猫分层索引-是否不适用于数据框?

来自分类Dev

字典列表中的熊猫时间序列索引

来自分类Dev

如何在熊猫中将分层的日期和时间索引合并为单个日期时间索引?

来自分类Dev

熊猫分层排序

来自分类Dev

分层数据熊猫

来自分类Dev

熊猫:使用循环和分层索引将多个csv文件导入数据帧

来自分类Dev

在具有分层索引的熊猫数据框中使用iloc的问题

来自分类Dev

熊猫:使用循环和分层索引将多个csv文件导入数据帧

来自分类Dev

分层索引的总和列?

来自分类Dev

使用字典键之外的索引创建熊猫数据框

来自分类Dev

从字典重新编码熊猫索引对象(用于无序替换)

来自分类Dev

使用其键作为熊猫索引来转换字典词典

来自分类Dev

熊猫:从字典创建框架时,什么决定索引顺序?

来自分类Dev

熊猫:合并分层数据

来自分类Dev

熊猫中的分层组大小

来自分类Dev

如何在具有分层索引的熊猫数据框中添加和计算(基于其他列)子列?

来自分类Dev

Z索引分层问题(CSS)

来自分类Dev

将分层TreeView绑定到字典

来自分类Dev

遍历Python中任意分层字典的项目

来自分类Dev

将列表传输到困难的分层字典

来自分类Dev

熊猫-如何使用带有索引的字典对列的行进行排序

来自分类Dev

熊猫多索引数据透视表已转换为字典列表

来自分类Dev

熊猫相关矩阵到唯一索引/列组合的字典

来自分类Dev

熊猫:如何将具有重复索引值的数据框转换为字典

Related 相关文章

热门标签

归档