首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试将列设置为pandas数据帧中的索引时出错

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

Stack Overflow用户
提问于 2020-10-23 22:10:53
回答 1查看 117关注 0票数 1

我有以下代码:

代码语言:javascript
运行
复制
A = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=[['att1', 'att2']])
A['idx'] = ['a', 'b', 'c']
A

在我这样做之前,它工作得很好(尝试将列'idx‘设置为dataframe的索引)

代码语言:javascript
运行
复制
A.set_index('idx', inplace=True)

这将抛出一个错误

代码语言:javascript
运行
复制
TypeError: only integer scalar arrays can be converted to a scalar index

这是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 22:18:28

错误是使用创建A时出现的

代码语言:javascript
运行
复制
columns = [['att1', 'att2']]

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

代码语言:javascript
运行
复制
MultiIndex([('att1',),
            ('att2',),
            ( 'idx',)],
           )

所以'idx'实际上不在您的列中,您可以用它来设置索引。现在,这将会起作用:

代码语言:javascript
运行
复制
A.set_index(('idx',))

并给予:

代码语言:javascript
运行
复制
       att1 att2
(idx,)          
a         1    2
b         1    3
c         4    6

但是,您应该只使用以下命令来修复A的创建:

代码语言:javascript
运行
复制
columns = ['att1', 'att2']
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64501616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档