如何将Counter对象转换为dict? - python

数据框:

pair = collections.defaultdict(collections.Counter)

例如

pair = {'doc1':  {'word1':4, 'word2':3}, 
        'doc2':  {'word1':2, 'word3':4},
        'doc3':  {'word2':2, 'word4':1},
         ...}

我想保留数据框,但要更改此部分的类型{'word1':4, 'word2':3} {'word1':2, 'word3':4}``...现在是Counter,我需要一个dict

我尝试这样做是从pair获取数据,但是我不知道如何为每个文档创建dict:

new_pair = collections.defaultdict(collections.Counter)
for doc, tab in testing.form.items():
    for word, freq in tab.items():
        new_pair[doc][word] = freq 

我不想更改输出。我只需要每个文档中的,数据类型是dict,而不是Counter

参考方案

Counter已经是dict或它的子类。但是,如果出于某种原因确实确实需要dict,则可以使用单行代码:

>>> c = Counter(word1=4, word2=3)
>>> c
Counter({'word1': 4, 'word2': 3})
>>> dict(c)
{'word1': 4, 'word2': 3}

可以将任何Mapping(行为类似于字典的任何内容)传递给dict,您将获得具有相同内容的dict。无需迭代就可以自己构造它。

这会给您一个循环,主体中只有一行,而不是嵌套循环。但是任何形式的代码:

 thing = a new empty collection
 for elem in old_thing:
    Add something to do with elem to thing

通常可以使用生成器表达式或列表,集合或字典理解在一行中完成。我们正在构建一个dict,因此很可能会出现dict comprehension(“示例”部分是您最感兴趣的部分)。我将把它作为读者的练习。 😉

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…

python JSON对象必须是str,bytes或bytearray,而不是'dict - python

在Python 3中,要加载以前保存的json,如下所示:json.dumps(dictionary)输出是这样的{"('Hello',)": 6, "('Hi',)": 5}当我使用json.loads({"('Hello',)": 6,…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。