Python是目前最流行最简单用途最广泛的编程语言,大数据时代最应该学习的一门编程语言。其中,数据分析的库pandas是Python最经典的库之一。DataFrame和Series是pandas最重要的2个数据结构。 有人会问是否可以把DataFrame的列拉到索引中呢?(就像透视表那样随便拖拽自由),当然可以的;如果整数做索引会有一些歧义,也需要注意一下;下面通过一个例子来看看。
工具/原料
1
python,anaconda,spyder
2
DataFrame,Series
方法/步骤
1
前提:加载numpy,pandas和Series,DataFrame。生成一个8*4的DataFrame,列名为'a','b','c','d',命名为df1,如图
2
将DataFrame的列转换为索引。df1.set_index(['c'])将‘c’列转换为索引;df1.set_index(['c','d'])分别将‘c’列和‘d’列转化为索引,如图所示
3
如果将DataFrame的列转换为索引后,仍然想把转换的列留下来,那么可以使用参数drop=False,如图所示
4
如果想要把索引放回到列中,可以使用reset_index()。df1.set_index(['c','d']).reset_index()首先用df1.set_index()把df1的'c'和'd'列转换为索引之后,再用reset_index()将索引转换到列(其实相当于做了一个逆运算),如图所示
5
为了验证整数索引可能产生歧义,需要生成2个Series,其中一个不指定索引(s1),一个指定字符索引(s2),如图所示
6
使用整数索引对比s1和s2的区别(基于标签或位置索引)。发现如果是整数索引使用s1[-1]则报错,如图所示
7
使用整数索引对比s1和s2的区别(使用切片)带有字符索引的切片报错了,说明操作面向标签的,如图所示
注意事项
1
set_index和reset_index刚好是互逆运算
2
set_index和reset_index同时操作之后,列的顺序有可能与原始的顺序不一样,若需要完全一样,可以使用DataFrame的columns参数指定顺序即可
3
如果使用整数索引需要留意是否会产生歧义
上一篇:#我来了#高考失利了怎么办
下一篇:PS怎么把白天的照片做成夜晚的