我有以下词典:
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']})
我也有熊猫系列 Resetedset ['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)
但是,这无效。
有人可以帮我吗?
答案 0 :(得分:1)
创建元组列表并传递给MultiIndex.from_tuples
:
.xaml.cs
然后:
public MainWindow()
{
InitializeComponent();
var cities = new List<City>
{
new City() {CityName = "Mannheim"},
new City() {CityName = "München"},
};
TvCities.ItemsSource = cities;
}
另一个想法是原始字典使用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