「この列名をあれに変えたい」
といったケースについて、説明します。
「列名をすべてつけ直したい」
というケースについても触れます。

元データ:data1

In [8]: data1.head()
Out[8]:
   age  workclass  fnlwgt     education  educational-num      marital-status  \
0   25    Private  226802          11th                7       Never-married
1   38    Private   89814       HS-grad                9  Married-civ-spouse
2   28  Local-gov  336951    Assoc-acdm               12  Married-civ-spouse
3   44    Private  160323  Some-college               10  Married-civ-spouse
4   18          ?  103497  Some-college               10       Never-married

          occupation relationship   race  gender  capital-gain  capital-loss  \
0  Machine-op-inspct    Own-child  Black    Male             0             0
1    Farming-fishing      Husband  White    Male             0             0
2    Protective-serv      Husband  White    Male             0             0
3  Machine-op-inspct      Husband  Black    Male          7688             0
4                  ?    Own-child  White  Female             0             0

   hours-per-week native-country income
0              40  United-States  <=50K
1              50  United-States  <=50K 2 40 United-States >50K
3              40  United-States   >50K
4              30  United-States  <=50K

列名の一部を変更(元データを上書きしない)

pandasのrenameメソッドを使用します。
以下の例は、「age」という列名を「Age」に変更しています。
なお、最後のパラメータの「inplace」で元データを上書きするかどうかを選べます。
この場合は、上書きせず、新しいdata2というオブジェクトに格納しています。

例1

# 列名の一部を変更(data1を上書きしない)
data2 = data1.rename(columns={"age" : "Age"}, inplace=False)

data2.head()

例1の結果

   Age  workclass  fnlwgt     education  educational-num      marital-status  \
0   25    Private  226802          11th                7       Never-married
1   38    Private   89814       HS-grad                9  Married-civ-spouse
2   28  Local-gov  336951    Assoc-acdm               12  Married-civ-spouse
3   44    Private  160323  Some-college               10  Married-civ-spouse
4   18          ?  103497  Some-college               10       Never-married

          occupation relationship   race  gender  capital-gain  capital-loss  \
0  Machine-op-inspct    Own-child  Black    Male             0             0
1    Farming-fishing      Husband  White    Male             0             0
2    Protective-serv      Husband  White    Male             0             0
3  Machine-op-inspct      Husband  Black    Male          7688             0
4                  ?    Own-child  White  Female             0             0

   hours-per-week native-country income
0              40  United-States  <=50K
1              50  United-States  <=50K 2 40 United-States >50K
3              40  United-States   >50K
4              30  United-States  <=50K

列名の一部を変更(元データを上書きする)

こちらの例では、「inplace」Trueにして、data1の列名を上書きしています。

例2

# 列名の一部を変更(data1を上書きする)
data1.rename(columns={"age" : "Age"}, inplace=True)

data1.head()

例2の結果

   Age  workclass  fnlwgt     education  educational-num      marital-status  \
0   25    Private  226802          11th                7       Never-married
1   38    Private   89814       HS-grad                9  Married-civ-spouse
2   28  Local-gov  336951    Assoc-acdm               12  Married-civ-spouse
3   44    Private  160323  Some-college               10  Married-civ-spouse
4   18          ?  103497  Some-college               10       Never-married

          occupation relationship   race  gender  capital-gain  capital-loss  \
0  Machine-op-inspct    Own-child  Black    Male             0             0
1    Farming-fishing      Husband  White    Male             0             0
2    Protective-serv      Husband  White    Male             0             0
3  Machine-op-inspct      Husband  Black    Male          7688             0
4                  ?    Own-child  White  Female             0             0

   hours-per-week native-country income
0              40  United-States  <=50K
1              50  United-States  <=50K 2 40 United-States >50K
3              40  United-States   >50K
4              30  United-States  <=50K

複数の列名を変更

場合によっては、複数の列名を変更したいことがあります。
一部日本語の列名がデータに含まれていて、それを英字にしたい、など。
下記のようにもかけますが、変更対象の列数が多くなると、コードが読みづらくなります。

data1.rename(columns={"age" : "Age", "workclass" : "WorkClass"}, inplace=True)

そこで、変更前・変更後の列名を配列で管理し、それをループさせて複数の列名変更をやるやり方がよいかと思います。
下記の例では、

  • age→Age
  • workclass→WorkClass
  • income→Income

の対応に従って、列名を変更しています。

例3

# 変更したい元の列名を配列で指定
before_colnames = ["age", "workclass", "income"]

# 変更後の列名を配列で指定
after_colnames = ["Age", "WorkClass", "Income"]

# 複数配列をループする際にはzipが便利
for before, after in zip(before_colnames, after_colnames):
    data1.rename(columns={before : after}, inplace=True)
    
data1.head()

例3の結果

   Age  WorkClass  fnlwgt     education  educational-num      marital-status  \
0   25    Private  226802          11th                7       Never-married
1   38    Private   89814       HS-grad                9  Married-civ-spouse
2   28  Local-gov  336951    Assoc-acdm               12  Married-civ-spouse
3   44    Private  160323  Some-college               10  Married-civ-spouse
4   18          ?  103497  Some-college               10       Never-married

          occupation relationship   race  gender  capital-gain  capital-loss  \
0  Machine-op-inspct    Own-child  Black    Male             0             0
1    Farming-fishing      Husband  White    Male             0             0
2    Protective-serv      Husband  White    Male             0             0
3  Machine-op-inspct      Husband  Black    Male          7688             0
4                  ?    Own-child  White  Female             0             0

   hours-per-week native-country Income
0              40  United-States  <=50K
1              50  United-States  <=50K 2 40 United-States >50K
3              40  United-States   >50K
4              30  United-States  <=50K

すべての列名をつけ直す
data1の持つ列名情報を上書きする形で付け直します。

例4

# 列名をすべて変更する
data1.columns =['1age',
    '2workclass',
    '3fnlwgt', 
    '4education', 
    '5educational-num',
    '6marital-status', 
    '7occupation', 
    '8relationship', 
    '9race', 
    '10gender',
    '11capital-gain',
    '12capital-loss', 
    '13hours-per-week', 
    '14native-country',
    '15income']

data1.head()

例4の結果

   1age 2workclass  3fnlwgt    4education  5educational-num  \
0    25    Private   226802          11th                 7
1    38    Private    89814       HS-grad                 9
2    28  Local-gov   336951    Assoc-acdm                12
3    44    Private   160323  Some-college                10
4    18          ?   103497  Some-college                10

      6marital-status        7occupation 8relationship  9race 10gender  \
0       Never-married  Machine-op-inspct     Own-child  Black     Male
1  Married-civ-spouse    Farming-fishing       Husband  White     Male
2  Married-civ-spouse    Protective-serv       Husband  White     Male
3  Married-civ-spouse  Machine-op-inspct       Husband  Black     Male
4       Never-married                  ?     Own-child  White   Female

   11capital-gain  12capital-loss  13hours-per-week 14native-country 15income
0               0               0                40    United-States    <=50K
1               0               0                50    United-States    <=50K 2 0 0 40 United-States >50K
3            7688               0                40    United-States     >50K
4               0               0                30    United-States    <=50K

列名の文字列置換でも触れたとおり、列名の変更は非常に重要で、変な文字が入っている場合、エラーが出る処理もあります。
日本語や記号は、すべて書き換えてからデータ整形に挑みましょう。