将pandas.Series.value_counts返回的系列转换为字典

swa*_*oji 12 python pandas

我正在尝试使用pandas.Series.value_counts来获取数据帧中值的频率,因此我遍历每一列并获取values_count,这给了我一个系列:

我正在努力将这个结果系列转换为dict:

 groupedData = newData.groupby('class')
for k, group in groupedData:
    dictClass[k] = {}
    for eachlabel in dataLabels:
        myobj = group[eachlabel].value_counts()
        for eachone in myobj:
            print type(myobj)
            print myobj
Run Code Online (Sandbox Code Playgroud)

片段

我需要的是一个字典:

{'high':3909,'average':3688,'less':'182,'veryless':62}

DSM*_*DSM 29

如果你想将a转换Series为a dict,你可以打电话dict.to_dict():

>>> s
high        3909
average     3688
less         182
veryless      62
dtype: int64
>>> type(s)
<class 'pandas.core.series.Series'>
>>> dict(s)
{'high': 3909, 'average': 3688, 'veryless': 62, 'less': 182}
>>> s.to_dict()
{'high': 3909, 'average': 3688, 'veryless': 62, 'less': 182}
Run Code Online (Sandbox Code Playgroud)


Mar*_*oma 6

从 your_column 中提取字典的键和值,然后将其压缩在一起。

values = df['your_column'].value_counts(dropna=False).keys().tolist()
counts = df['your_column'].value_counts(dropna=False).tolist()
value_dict = dict(zip(values, counts))
Run Code Online (Sandbox Code Playgroud)

  • 请在您的答案周围添加说明。这将对未来的用户有所帮助。 (2认同)