我有一本比格字典,它创建为
self.bigram_counts = defaultdict(lambda: Counter())来自self.bigram_counts的2行示例:
[(None, Counter({'de': 1})),
('de', Counter({'la': 7839,filtradojardin': 1,'cantera': 236})))]试图将其加载到dataframe中似乎没有效率,如下所示:
bigrams2 = pd.DataFrame.from_dict(list((vocab.bigram_counts.keys(),
vocab.bigram_counts.values().keys()),
vocab.bigram_counts.values().values()))我想要两列从这个数据,一个与完整的比格,和一个与计数。在这种情况下,调用pd.DataFrame的最佳方式是什么?
以前,我用过:
bigrams = pd.DataFrame.from_dict(list(vocab.bigram_counts.items()))
bigrams.columns = [['word(s)', 'count(s)']]
bigrams.head()它工作,但为count列提供了一个计数器对象。我不认为.melt()就在这里,但是也许可以使用类似的东西?
期望产出:
0 1
0 None, de 1
1 de, la 7839
2 de, filtradojardin 1
3 de, cantera 236发布于 2018-12-14 03:49:01
我会这样做:
flat_bigram_counts = (
(word1, word2, count)
for word1, counter in bigram_counts
for word2, count in counter.items()
)
df = pd.DataFrame.from_records(flat_bigram_counts)我的机器为示例中的两行输出以下内容:
0 1 2
0 None de 1
1 de la 7839
2 de filtradojardin 1
3 de cantera 236https://stackoverflow.com/questions/53771601
复制相似问题