前言

无论是在学习还是在工作中,数据一直伴随我们左右。量化研究的盛行,就意味着对客观现实的捕捉是人类理性的重要表现。数据处理与分析是一个数据价值挖掘的过程,然而相应的工具却很多,且各有特色,相关的工具有SPSS、R语言、SQL和python等。

在数据处理过程中,我们经常会遇到关于轴标签的处理问题。轴标签的处理,大家乍一看上去有点懵,特别是对数据处理相关知识不甚了解对伙伴们。这里举个简单对例子来进一步了解一下,比如我们要个一个数据集中对列改名字。

接下来,小编带领大家一起来学习,如何通过python方法来实现轴标签转换的。期间我们会涉及到pandas的两种数据结构Series 和DataFrame。如果对此不是十分了解,可以阅读小编相应文章进行学习或者查阅相关知识,再次不做赘述。

跟Series中的值一样,轴标签也可以通过函数或映射进行转换,从而得到一个新对象。轴还可以被就地修改,而无须新建一个数据结构。

In [12]: import pandas as pd
In [13]: from pandas import Series,DataFrame
In [14]: data=DataFrame(np.arange(12).reshape((3,4)),
index=['Ohio','Colorado','New York'],
columns=['one','two','three','four'])
In [15]: data
Out[15]:
one two three four
Ohio 0 1 2 3
Colorado 4 5 6 7
New York 8 9 10 11

map方法

跟Series一样,轴标签也有一个map方法:

In [16]: data.index.map(str.upper)
Out[16]: Index(['OHIO', 'COLORADO', 'NEW YORK'], dtype='object')

可以将其赋值给index,这样就可以对DataFrame进行就地修改了:

In [17]: data.index=data.index.map(str.upper)
In [18]: data
Out[18]:
one two three four
OHIO 0 1 2 3
COLORADO 4 5 6 7
NEW YORK 8 9 10 11

rename方法

如果想要创建数据集的转换版(而不是修改原始数据),比较使用的方法是rename:

In [19]: data.rename(index=str.title,columns=str.upper)
Out[19]:
ONE TWO THREE FOUR
Ohio 0 1 2 3
Colorado 4 5 6 7
New York 8 9 10 11

更新轴标签

特别说明一下,rename可以结合字典型对象实现对部分轴标签的更新:

In [20]: data.rename(index={'OHIO':'INDIANA'},columns={'three':'peekaboo'})

Out[20]:

one two peekaboo four
INDIANA 0 1 2 3
COLORADO 4 5 6 7
NEW YORK 8 9 10 11

修改某个数据集:inplace=True

Rename带我们实现了:复制DataFrame并对其索引和列标签进行赋值。如果希望就地修改某个数据集,传入inplace=True即可:

In [21]: _=data.rename(index={'OHIO':'INDIANA'},inplace=True)

In [22]: data

Out[22]:

one two three four
INDIANA 0 1 2 3
COLORADO 4 5 6 7
NEW YORK 8 9 10 11

总结

无论是map方法、rename方法,还是更新轴标签方法,亦或是修改某个数据集方法,都是python轴标签转换方法。没有好与坏之分,适用于不同对应用场景。大家在实际应用过程中,结合自己的使用场景,选择一个适合的方法即可。希望大家如小编一样喜欢python,感谢支持!记得给个关注支持一下哦!万分感谢!