有没有办法把一本字典归类成Pandas

2024-09-30 14:23:26 发布

您现在位置:Python中文网/ 问答频道 /正文

试图通过一本小词典,按大陆对熊猫进行分类。结果应该是一个大陆指数,作为第一列的指数和国家数量

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

输出应该如下所示

Index Country    Column1
Asia               5
United States      2
Europe             6...

不必按任何顺序排序

迄今为止的代码

countries_df = pd.DataFrame.from_dict(ContinentDict,orient='index')
    #columns=['size', 'sum', 'mean', 'std']
    #countries_df = countries_df.rename(columns={0:"sampCol"})
    #countries_df[columns[0]]=np.nan
    #countries_df[columns[1]]=np.nan
    #countries_df[columns[2]]=np.nan
    #countries_df[columns[3]]=np.nan
    #countries_df=countries_df.set_index('A').groupby(0)
    countries_df=countries_df.rename(index={" ":"Countries"})
    
    #countries_df=countries_df.groupby('sampCol')
    #countries_df = countries_df.sum()

   
    #countries_df['size']=countries_df.groupby(['sampCol']).sum()
    
    return countries_df

Tags: columnsdfindexnpnan指数countriesunited
2条回答

pandas.Series.groupbycount一起使用:

s = pd.Series(ContinentDict, name="Country")
s.groupby(s).count()

输出:

Country
Asia             5
Australia        1
Europe           6
North America    2
South America    1
Name: Country, dtype: int64

你可以用

countries_df = pd.DataFrame(continentDict.items(), columns=('country', 'continent'))
countries_df.groupby('continent').count()
               country
continent             
Asia                 5
Australia            1
Europe               6
North America        2
South America        1

相关问题 更多 >