2016-10-30 2 views
1
 Country %Renewable 
China (15.753, 29.227] 
United States (2.212, 15.753] 
Japan (2.212, 15.753] 
United Kingdom (2.212, 15.753] 
Russian Federation (15.753, 29.227] 
Canada (56.174, 69.648] 
Germany (15.753, 29.227] 
India (2.212, 15.753] 
France (15.753, 29.227] 
South Korea (2.212, 15.753] 
Italy (29.227, 42.701] 
Spain (29.227, 42.701] 
Iran (2.212, 15.753] 
Australia (2.212, 15.753] 
Brazil (56.174, 69.648] 

을 생성, 내가 'Continent' 다중 인덱스 일련하려면 ->'% renawable', 나는 내가 GROUPBY을 사용할 수 있습니다 알고를, 문제는 내가 submultindex을 수행하는 방법을 잘 모르겠습니다이다 제대로, categoricals 예를 들어 결과 일련의 처리 방법 :들여 쓰기 multindex 나는이 DATAFRAME이

Continent  % Renewable  Country 
Europe  (2.212, 15.753] ['France', 'United Kingdom', 'Russian Federation'] 
       (15.753, 29.227] ['Germany', 'France']   
       (29.227, 42.701] ['Italy', 'Spain'] 
Asia   (2.212, 15.753] ['India', 'South Korea', 'Iran', 'Japan', 'Iran']  
       (15.753, 29.227] ['China'] 
Oceania  (2.212, 15.753] ['Australia'] 
North America (2.212, 15.753] ['United States'] 
       (56.174, 69.648] ['Canada'] 
South America (56.174, 69.648] ['Brazil'] 

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'} 

이것은 당신은 대륙 매핑을 할 replace을 사용할 수 있습니다 대륙

답변

1

로 변환 국가 DICT하고 0123입니다각 그룹에 대한 값 목록을 얻으려면 :

In [53]: df['Continent'] = df.Country.replace(ContinentDict) 
In [55]: df.groupby(['Continent', '%Renewable']).apply(lambda x: x.Country.tolist()) 
Out[55]: 
Continent  %Renewable 
Asia   (15.753, 29.227]         [China] 
       (2.212, 15.753]   [Japan, India, South Korea, Iran] 
Australia  (2.212, 15.753]        [Australia] 
Europe   (15.753, 29.227] [Russian Federation, Germany, France] 
       (2.212, 15.753]       [United Kingdom] 
       (29.227, 42.701]       [Italy, Spain] 
North America (2.212, 15.753]       [United States] 
       (56.174, 69.648]         [Canada] 
South America (56.174, 69.648]         [Brazil] 
+0

대단히 감사합니다. 감사합니다. – lucarlig

관련 문제