pandas库随笔——更改Series与DataFrame的列标签

我们要对Series和DataFrame的列标签进行修改,通常是使用rename函数,还有一种方法就是使用暴力修改法,下面分别针对两种方法进行代码演示以及进行说明。

首先我们先载入pandas库并且生成一个Series以及一个DataFrame,用于后面测试时用到。

>>> import pandas as pd
>>> import numpy as np

>>> ser = pd.Series(list('kanny'))
>>> ser
0    k
1    a
2    n
3    n
4    y
dtype: object
>>> df = pd.DataFrame(np.arange(12).reshape(3,4), 
                      columns=['A', 'B', 'C', 'D'])
>>> df
   A  B   C   D
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

1. 暴力修改法

暴力修改法这里直接为修改我们Series与DataFrame的名称。

1) Series

首先查看Series的名称:

>>> ser.name

会发现什么都运行不出来,因为默认的name为空,所以我们可以直接对其赋值即可修改其名称。

>>> ser.name = 'kanny'
>>> ser
0    k
1    a
2    n
3    n
4    y
Name: kanny, dtype: object

>>> ser.name
'kanny'

类似的我们同样可以对DataFrame的列进行赋值,但是赋值时必须向量长度与列数一致,不然会报错。


2) DataFrame

这里我们就不能使用name了,在DataFrame里面需要使用columns,我们先输出结果看看是长什么样的。

>>> df.columns
Index(['A', 'B', 'C', 'D'], dtype='object')

然后类似进行修改:

>>> df.columns = ['a', 'b', 'C', 'D']
>>> df
   a  b   C   D
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

注意,我们使用list(df)也会输出列名,但如果使用list(df) = ['a', 'b', 'C', 'D']则会报错。并且需要注意的是,我们不能针对指定的列进行修改,要修改就只能全部进行修改了。

如果需要针对指定的列进行修改,就需要用到我们的rename函数了。


2. rename修改法

首先介绍Series的rename修改法。

1) Series

如下所示,即可对Series的标签进行修改。

>>> ser.rename("Kanny", inplace = True)
>>> ser
0    k
1    a
2    n
3    n
4    y
Name: Kanny, dtype: object

对DataFrame的列标签修改也是类似。


2) DataFrame

使用如下的方法即可进行修改。

>>> df.rename(columns={'A':'a', 'B':'b', 'C':'C', 'D':'D'}, inplace = True)
>>> df
   a  b   C   D
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

但我们注意到,其实我们只是修改前面两个字母,所以这里我们也不需要写将A、B、C、D四个列名全部写进去,只用写前面两个就可以了。

>>> df.rename(columns={'A':'a', 'B':'b'}, inplace = True)
>>> df
   a  b   C   D
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

猜你喜欢

转载自blog.csdn.net/weixin_41929524/article/details/81332328