有没有办法在 pandas 中对字典进行分组

尝试按熊猫中的各大洲对国家/地区的小字典进行分组。结果应该是一个以大洲为索引的索引,以及第一列中的国家/地区数量。


 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


尚方宝剑之说
浏览 112回答 2
2回答

婷婷同学_

pandas.Series.groupby与以下一起使用count:s = pd.Series(ContinentDict, name="Country")s.groupby(s).count()输出:CountryAsia             5Australia        1Europe           6North America    2South America    1Name: Country, dtype: int64

动漫人物

您可以使用countries_df = pd.DataFrame(continentDict.items(), columns=('country', 'continent'))countries_df.groupby('continent').count()               countrycontinent             Asia                 5Australia            1Europe               6North America        2South America        1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python