DataFrame列和索引互换的方法及整数索引
- 原创
- |
- 浏览:18679
- |
- 更新:
Python是目前最流行最简单用途最广泛的编程语言,大数据时代最应该学习的一门编程语言。其中,数据分析的库pandas是Python最经典的库之一。DataFrame和Series是pandas最重要的2个数据结构。
有人会问是否可以把DataFrame的列拉到索引中呢?(就像透视表那样随便拖拽自由),当然可以的;如果整数做索引会有一些歧义,也需要注意一下;下面通过一个例子来看看。
方法/步骤
前提:加载numpy,pandas和Series,DataFrame。
生成一个8*4的DataFrame,列名为'a','b','c','d',命名为df1,如图
将DataFrame的列转换为索引。
df1.set_index(['c'])将‘c’列转换为索引;
df1.set_index(['c','d'])分别将‘c’列和‘d’列转化为索引,如图所示
如果将DataFrame的列转换为索引后,仍然想把转换的列留下来,那么可以使用参数drop=False,如图所示
如果想要把索引放回到列中,可以使用reset_index()。
df1.set_index(['c','d']).reset_index()首先用df1.set_index()把df1的'c'和'd'列转换为索引之后,再用reset_index()将索引转换到列(其实相当于做了一个逆运算),如图所示
为了验证整数索引可能产生歧义,需要生成2个Series,其中一个不指定索引(s1),一个指定字符索引(s2),如图所示
使用整数索引对比s1和s2的区别(基于标签或位置索引)。
发现如果是整数索引使用s1[-1]则报错,如图所示
使用整数索引对比s1和s2的区别(使用切片)
带有字符索引的切片报错了,说明操作面向标签的,如图所示
END- 本页面未经授权抓取自百度经验
注意事项
- set_index和reset_index刚好是互逆运算
- set_index和reset_index同时操作之后,列的顺序有可能与原始的顺序不一样,若需要完全一样,可以使用DataFrame的columns参数指定顺序即可
- 如果使用整数索引需要留意是否会产生歧义
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部














