pandas dataframe获取列名、添加列名、列索引

1.获取列名

df = pd.DataFrame({'a': [1, 2, 4, np.nan,7, 9], 'b': ['a', 'b', np.nan, np.nan, 'd', 'e'], 'c': [np.nan, 0, 4, np.nan, np.nan, 5], 'd': [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]})

输出:
     a    b    c   d
0  1.0    a  NaN NaN
1  2.0    b  0.0 NaN
2  4.0  NaN  4.0 NaN
3  NaN  NaN  NaN NaN
4  7.0    d  NaN NaN
5  9.0    e  5.0 NaN

四种获取列名的方式:

print(df.columns) # 输出是一个index类型: Index(['a', 'b', 'c', 'd'], dtype='object'), 可以进行遍历,其每一个元素是string,
print(list(df)) # 输出是一个list: ['a', 'b', 'c', 'd']
print(df.keys) # 输出是: <bound method NDFrame.keys of      a    b    c   d    ,不可以进行遍历
print(df.keys())# 输出是:Index(['a', 'b', 'c', 'd'], dtype='object').,可以进行遍历,其每一个元素是string

2.添加列名

如果一个矩阵,将其变为dataframe格式,没有列名,打印行数、列数以及选取某一列,选取某一列时,直接df[index],注意想获取第三列,index应该等于2,列索引从0开始。

df = pd.DataFrame([[1, 2, 4, np.nan,7, 9], ['a', 'b', np.nan, np.nan, 'd', 'e'],  [np.nan, 0, 4, np.nan, np.nan, 5],  [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]])
print(df)
print(df.columns) # 会显示有多少列
print(df[2]) # 显示第三列,注意:列索引是从0开始
print(df.shape)  #输出是(4,6)4行6列

输出:
     0    1    2   3    4    5
0    1    2  4.0 NaN    7    9
1    a    b  NaN NaN    d    e
2  NaN    0  4.0 NaN  NaN    5
3  NaN  NaN  NaN NaN  NaN  NaN

RangeIndex(start=0, stop=6, step=1)

0    4.0
1    NaN
2    4.0
3    NaN
Name: 2, dtype: float64

想给他们添加列名,使用方法如下:

df.columns=['a','b','c','d','e','f']
print(df)
print(df['a'])

输出:
     0    1    2   3    4    5
0    1    2  4.0 NaN    7    9
1    a    b  NaN NaN    d    e
2  NaN    0  4.0 NaN  NaN    5
3  NaN  NaN  NaN NaN  NaN  NaN

     a    b    c   d    e    f
0    1    2  4.0 NaN    7    9
1    a    b  NaN NaN    d    e
2  NaN    0  4.0 NaN  NaN    5
3  NaN  NaN  NaN NaN  NaN  NaN

0      1
1      a
2    NaN
3    NaN
Name: a, dtype: object

3.列名覆盖

如果一个dataframe已经有列名字,可以进行覆盖。或者是当你不确定是否有列名,那么直接复制吧,反正是可以直接覆盖,按照你想命名的列名称呼这一列即可:

df = pd.DataFrame({'a': [1, 2, 4, np.nan,7, 9], 'b': ['a', 'b', np.nan, np.nan, 'd', 'e'], 'c': [np.nan, 0, 4, np.nan, np.nan, 5], 'd': [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]})
print(df)
df.columns = ['aa', 'bb', 'cc', 'dd']
print(df)

输出:
     a    b    c   d
0  1.0    a  NaN NaN
1  2.0    b  0.0 NaN
2  4.0  NaN  4.0 NaN
3  NaN  NaN  NaN NaN
4  7.0    d  NaN NaN
5  9.0    e  5.0 NaN
    aa   bb   cc  dd
0  1.0    a  NaN NaN
1  2.0    b  0.0 NaN
2  4.0  NaN  4.0 NaN
3  NaN  NaN  NaN NaN
4  7.0    d  NaN NaN
5  9.0    e  5.0 NaN

猜你喜欢

转载自blog.csdn.net/pearl8899/article/details/127554276