Python – 在Pandas DataFrame中更改列名和行索引
前言
Pandas是数据科学及分析领域中常用的Python库,它为我们提供了丰富的数据处理和分析工具。在数据处理过程中,DataFrame是Pandas库中最常用的数据结构之一。在实际应用中,为了方便处理和分析数据,有时候需要更改DataFrame的列名或者行索引。本篇文章就对如何为DataFrame设置列名和行索引做一个详细的介绍。
更改列名
在Pandas DataFrame中,我们可以通过rename方法来更改DataFrame的列名。rename方法有2个常用参数:columns和inplace。其中,columns表示一个字典,用来存储原列名和新列名之间的映射关系。inplace表示是否在原DataFrame中进行更改,默认为False,表示生成一个新的DataFrame。实例如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print('原始DataFrame:\n', df)
# 更改列名,生成新的DataFrame
df2 = df.rename(columns={'A': 'a', 'B': 'b'})
print('更改列名后的DataFrame:\n', df2)
# 使用inplace参数,在原DataFrame上直接更改
df.rename(columns={'A': 'a', 'B': 'b'}, inplace=True)
print('原始DataFrame的列名已经被更改:\n', df)
输出:
原始DataFrame:
A B
0 1 4
1 2 5
2 3 6
更改列名后的DataFrame:
a b
0 1 4
1 2 5
2 3 6
原始DataFrame的列名已经被更改:
a b
0 1 4
1 2 5
2 3 6
从输出结果可以看出,在使用rename方法的时候,我们可以生成一个新的DataFrame,也可以直接在原DataFrame上进行修改。如果在多次更改列名的时候,建议使用inplace参数直接在原DataFrame上进行更改。
更改行索引
在Pandas DataFrame中,我们可以通过set_index方法来更改DataFrame的行索引。set_index方法常用的参数是keys和drop,其中keys表示需要作为行索引的列名,可以是单个列名,也可以是多个列名组成的列表。drop表示是否在原DataFrame中删除被用作行索引的列,默认为True。实例如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': ['a', 'b', 'c']})
print('原始DataFrame:\n', df)
# 更改行索引,生成新的DataFrame
df2 = df.set_index('C')
print('更改行索引后的DataFrame:\n', df2)
# 在原DataFrame上直接更改
df.set_index('C', inplace=True)
print('原始DataFrame的行索引已经被更改:\n', df)
# 更改多个列的行索引
df3 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': ['a', 'b', 'c'], 'D': [7, 8, 9]})
print('原始DataFrame:\n', df3)
df3.set_index(['C', 'D'], inplace=True)
print('更改多个列的行索引后的DataFrame:\n', df3)
输出:
原始DataFrame:
A B C
0 1 4 a
1 2 5 b
2 3 6 c
更改行索引后的DataFrame:
A B
C
a 1 4
b 2 5
c 3 6
原始DataFrame的行索引已经被更改:
A B
C
a 1 4
b 2 5
c 3 6
原始DataFrame:
A B C D
0 1 4 a 7
1 2 5 b 8
2 3 6 c 9
更改多个列的行索引后的DataFrame:
A B
C D
a 7 1 4
b 8 2 5
c 9 3 6
从输出结果可以看出,在使用set_index方法的时候,每次只能把一列或几列作为行索引,如果需要使用多列作为行索引,可以使用一个列表来指定多列。在set_index方法中,同样可以使用inplace参数,在原DataFrame上直接进行修改。
结论
对于数据科学和分析领域的工作者来说,Pandas是一个非常常用的数据处理和分析工具,尤其是在处理大量数据时,Pandas的效率非常高。本篇文章主要介绍了如何在Pandas的DataFrame中更改列名和行索引,对于需要在数据处理过程中进行更改的数据科学家们非常实用。
极客笔记