首页 > 解决方案 > 尝试在熊猫数据框中将列设置为索引时出错

问题描述

我有以下代码:

A = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=[['att1', 'att2']])
A['idx'] = ['a', 'b', 'c']
A

在我这样做之前效果很好(尝试将列'idx'设置为数据框的索引)

A.set_index('idx', inplace=True)

引发错误

TypeError: only integer scalar arrays can be converted to a scalar index

这是什么意思 ?

标签: pythonpandasnumpydataframedata-science

解决方案


错误是当您A使用

columns = [['att1', 'att2']]

如果您打印A.columns,您将获得:

MultiIndex([('att1',),
            ('att2',),
            ( 'idx',)],
           )

所以'idx'并不是真的在你的专栏里为你设置索引。现在,这将起作用:

A.set_index(('idx',))

并给出:

       att1 att2
(idx,)          
a         1    2
b         1    3
c         4    6

但是,您应该只修复您的创建A

columns = ['att1', 'att2']

推荐阅读