[英]Create Three Columns from a Counter
现在,我的Counter看起来像这样:
(('you', 'call'), 3.2875047316896584): 1,
(('bonus', 'offer'), 5.880001319229578): 1,
(('without', 'warranty'), 10.11244740522995): 1
我正在尝试将这些值传递给具有三列,二元组,得分和频率的Pandas DF
因此,例如,使用上面的第一个值,我的预期DF看起来像
Bigrams Score Frequency
you call 3.2875047316896584 1
我正在尝试使用这段代码来执行此操作,但它一直给我一个错误
c = Counter()
frequencies = [[" ".join(k),v,d] for k,v,d in c]
frame = pd.DataFrame(frequencies, columns=['Bigrams','Score','Frequency'])
但是,这一直在说:值错误:需要两个以上的值才能解包。 我究竟做错了什么?
您正在使用键和值。 迭代字典(映射)仅产生键。 使用dict.items
使其同时产生。
并且,正确使用元组拆包。 它应该匹配产生的项目。
>>> from collections import Counter
>>> import pandas as pd
>>>
>>> c = Counter({
... (('you', 'call'), 3.2875047316896584): 1,
... (('bonus', 'offer'), 5.880001319229578): 1,
... (('without', 'warranty'), 10.11244740522995): 1
... })
>>> frequencies = [[" ".join(k),v,d] for (k, v), d in c.items()]
>>> frame = pd.DataFrame(frequencies, columns=['Bigrams','Score','Frequency'])
>>> print(frame)
Bigrams Score Frequency
0 bonus offer 5.880001 1
1 without warranty 10.112447 1
2 you call 3.287505 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.