为什么熊猫会存储带有对象dtype的布尔索引?

时间:2019-07-17 15:31:02

标签: python python-3.x pandas

让我定义一个简单的数据框:

In  [1]: df = pd.DataFrame({'a': [True, False], 'b': [1, 2]})

'a'列的数据类型存储为bool

In  [2]: df['a'].dtype
Out [2]: dtype('bool')

如果我然后将'a'设置为数据框的索引列:

In  [3]: df.set_index('a', inplace=True)

索引列的dtype现在为object

In  [4]: df.index
Out [4]: Index([True, False], dtype='object', name='a')

如果我使用整数列'b'作为索引,则索引的dtype符合预期:

In  [5]: df.reset_index(inplace=True)
         df.set_index('b', inplace=True)
         df.index
Out [5]: Int64Index([1, 2], dtype='int64', name='b')

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在哪种情况下,您想将布尔值设为索引?索引应该是该行的唯一标识符,我假设Pandas这样做是为了确保您没有重复的索引。