从系列中构建字典的问题

数据挖掘 Python 熊猫
2022-03-15 10:49:59

我有一个熊猫数据框,其中有一列 CAS_BRM_IDA 类型为 category (即使它的值看起来是 foat 类型......但它们本身没有意义)

我从该数据框构建了以下系列:

p = df.groupby( [ 'CAS_BRM_IDA' ] ).mean()[ 'TOP_FRD']
print( p )

结果显示:

CAS_BRM_IDA
10.0       0.001131
13.0       0.000000
15.0       0.002038
17.0       0.000000
20.0       0.003802
...
missing    0.019549

然后我尝试使用该系列构建字典:

mydic = dict( [ ( i , p[i] ) for i in p.index ] )

但我收到以下错误消息:

TypeError: cannot do label indexing on
  <class 'pandas.core.indexes.category.CategoricalIndex'>
   with these indexers [10.0] of <class 'float'>

关于 p 指数的一些细节:

CategoricalIndex(
    [10.0, 13.0, 15.0, 17.0, 20.0, 21.0, 30.0, 31.0, 40.0, 43.0,
     50.0, 51.0, 56.0, 'missing'],
     categories=[10.0, 13.0, 15.0, 17.0, 20.0, 21.0, 30.0, 31.0, ...],
     ordered=False, name='CAS_BRM_IDA', dtype='category')

我无法弄清楚问题出在哪里。'10.0' 值似乎被解释为浮点数,我认为不是。

如何从具有包含浮点数的分类索引的系列中构建字典?

1个回答

尝试内在的熊猫转换:

p.to_dict()