将Series转换为pandas中的词典列表

时间:2014-11-20 08:19:54

标签: python list pandas dictionary

我有["A","B","B","C","A"]形式的系列。

我使用pandas.Series.value_counts来计算每个唯一元素的频率,这也会返回一个系列:["A":2,"B":2,"C":1]

我想将此系列转换为字典列表[{A:2},{B:2},{C:1}]。但是,to_dictto_records都没有给我想要的结果。还有什么选择?

2 个答案:

答案 0 :(得分:3)

我认为Pandas for Series或DataFrames中的任何类型转换方法都不会产生您所追求的输出。

您可能只需要使用列表解析来调整to_dict()的结果:

>>> counts = pd.value_counts(series).to_dict()
>>> [{u: v} for (u, v) in counts.iteritems()]
[{'A': 2}, {'C': 1}, {'B': 2}]

答案 1 :(得分:0)

您需要counter

>>> from collections import Counter
>>> [ {x:y} for x,y in Counter(["A","B","B","C","A"]).items() ]
[{'A': 2}, {'C': 1}, {'B': 2}]