猿问

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

我有以下代码:

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

这是什么意思 ?


红糖糍粑
浏览 95回答 1
1回答

梵蒂冈之花

错误是当你创建A时columns = [['att1', 'att2']]如果你打印A.columns你会得到:MultiIndex([('att1',),            ('att2',),            ( 'idx',)],           )所以'idx'并不是真正在你的列中供你设置索引。现在,这可以工作:A.set_index(('idx',))并给出:       att1 att2(idx,)          a         1    2b         1    3c         4    6A但是,您应该仅使用以下命令来修复您的创建:columns = ['att1', 'att2']
随时随地看视频慕课网APP

相关分类

Python
我要回答