我有以下代码:
A = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=[['att1', 'att2']])
A['idx'] = ['a', 'b', 'c']
A在我这样做之前,它工作得很好(尝试将列'idx‘设置为dataframe的索引)
A.set_index('idx', inplace=True)这将抛出一个错误
TypeError: only integer scalar arrays can be converted to a scalar index这是什么意思?
发布于 2020-10-23 22:18:28
错误是使用创建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']https://stackoverflow.com/questions/64501616
复制相似问题