为了账号安全,请及时绑定邮箱和手机立即绑定

使用 defaultdict 对 pandas 中的值进行分类

使用 defaultdict 对 pandas 中的值进行分类

SMILET 2022-11-18 20:55:42
我正在尝试使用以下词典(' ContinentDict ')按大陆对国家/地区进行分类。因此,我想按值对键进行分类。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'}当我尝试选项 1 时:v = {}for key, value in sorted(d.items()):    v.setdefault(value, []).append(key)我收到错误:Traceback (most recent call last):  File "<input>", line 2, in <module>TypeError:'dict' object is not callable当我尝试选项 2 时:from collections import defaultdictdictionary = defaultdict(list)for key, value in ContinentDict:dictionary[value].append(key)我收到错误:Traceback (most recent call last):  File "<input>", line 1, in <module>TypeError: first argument must be callable or None有人可以帮我吗?
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

对于选项 2,我想你错过了.items()。这对我有用:


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



dictionary = defaultdict(list)

for key, value in ContinentDict.items():

    dictionary[value].append(key)


print(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']})


查看完整回答
反对 回复 2022-11-18
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信