例子:
假设有4家公司, 他们都在2个省份有自己的业务, 用统计量v1, v2进行描述, 现在需要对这些数据进行一定的分析.
# -*- coding: utf-8 -*-
import pandas as pd
list1 = [1, 2, 3, 4, 5, 6, 7, 8]
list4 = [8, 7, 6, 5, 4, 3, 2, 1]
list2 = ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b']
list3 = ['c1', 'c2', 'c3', 'c4', 'c1', 'c2', 'c3', 'c4']
df = pd.DataFrame({'pro':list2, 'cp':list3, 'val1':list1, 'val2': list4})
pro cp val1 val2
0 a c1 1 8
1 a c2 2 7
2 a c3 3 6
3 a c4 4 5
4 b c1 5 4
5 b c2 6 3
6 b c3 7 2
7 b c4 8 1
方法1: 更改某列列名
DataFrame.rename(map, inplace = 'True', axis='columns')
此时map里装的是 {"旧列名": "新列名"} 的字典, 加后面两个参数可以逐个修改列名. 对map内键值对顺序与个数不敏感, 只会根据老列名所在的键值对修改列名.
此处的 inplace 默认返回 False, 即不对原DataFrame进行修改; axis 默认为'index', 即对行操作, 改为'columns' 才可以对列名进行操作.
# 更改某列的列名
colname1 = {'pro': 'province', 'val1': 'value1', 'cp': 'cpName','val2': 'value2', 'val3': 'value3'}
df.rename(colname1, inplace = True, axis='columns')
province cpName value1 value2
0 a c1 1 8
1 a c2 2 7
2 a c3 3 6
3 a c4 4 5
4 b c1 5 4
5 b c2 6 3
6 b c3 7 2
7 b c4 8 1
方法2: 修改全部列名
DataFrame.columns = ['col1', 'col2', ..., 'coln']
# 修改全部列名
df.columns = ['province', 'cpName', 'val1', 'val2']
province cpName val1 val2
0 a c1 1 8
1 a c2 2 7
2 a c3 3 6
3 a c4 4 5
4 b c1 5 4
5 b c2 6 3
6 b c3 7 2
7 b c4 8 1