尝试将列设置为数据帧中的索引时出错

2024-09-19 20:56:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

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

这是什么意思


Tags: columns数据代码truedataframeindex错误pd
1条回答
网友
1楼 · 发布于 2024-09-19 20:56:58

错误出现在使用创建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']

相关问题 更多 >