我有一个Pandas数据框,我将一些列指定为索引:
planets_dataframe.set_index(['host','name'], inplace=True)
并希望能够在各种情况下参考这些指数.使用索引的名称在查询中工作正常
planets_dataframe.query('host == "PSR 1257 12"')
但如果尝试使用它来获取索引值的列表,则会导致错误,因为它是一个列
planets_dataframe.name
#AttributeError: 'DataFrame' object has no attribute 'name'
或者用它来列出结果,因为它是“常规”列
planets_dataframe.query('30 > mass > 20 and discoveryyear > 2009')['name']
#KeyError: u'no item named name'
如何引用我用作索引的数据框的“列”?
在set_index之前:
planets_dataframe.columns
# Index([u'name', u'lastupdate', u'temperature', u'semimajoraxis', u'discoveryyear', u'calculated', u'period', u'age', u'mass', u'host', u'verification', u'transittime', u'eccentricity', u'radius', u'discoverymethod', u'inclination'], dtype='object')
在set_index之后:
planets_dataframe.columns
#Index([u'lastupdate', u'temperature', u'semimajoraxis', u'discoveryyear', u'calculated', u'period', u'age', u'mass', u'verification', u'transittime', u'eccentricity', u'radius', u'discoverymethod', u'inclination'], dtype='object')