pandas 设置索引

pandas 设置索引

pandas 设置索引

在 Pandas 中,设置索引是一个常见的操作。通过设置索引,我们可以以某一列或多列作为数据表的索引,这样在数据处理和分析时会更加方便和高效。本文将详细介绍如何在 Pandas 中设置索引,并探讨设置索引的多种用法和技巧。

1. 设置单个索引

1.1 从已有列设置索引

我们可以使用 set_index() 方法来从已有的列设置索引。例如,考虑以下的数据表 df

import pandas as pd

data = {
    'A': [1, 2, 3, 4],
    'B': ['foo', 'bar', 'foo', 'bar'],
    'C': [0.1, 0.2, 0.3, 0.4]
}

df = pd.DataFrame(data)
print(df)

输出:

   A    B    C
0  1  foo  0.1
1  2  bar  0.2
2  3  foo  0.3
3  4  bar  0.4

我们现在将列 ‘B’ 设置为索引:

df.set_index('B', inplace=True)
print(df)

输出:

     A    C
B          
foo  1  0.1
bar  2  0.2
foo  3  0.3
bar  4  0.4

可以看到,列 ‘B’ 已经成功设置为索引。

1.2 重置索引

有时候我们可能需要重置索引,即还原索引为默认的整数索引。我们可以使用 reset_index() 方法来重置索引。继续以上面的示例:

df.reset_index(inplace=True)
print(df)

输出:

     B  A    C
0  foo  1  0.1
1  bar  2  0.2
2  foo  3  0.3
3  bar  4  0.4

索引已成功重置为整数索引。

2. 设置多级索引

2.1 从多列设置索引

除了设置单个索引外,我们还可以设置多级索引,即通过多列来构成索引。我们可以传递一个列名的列表给 set_index() 方法来实现多级索引。考虑以下的数据表 df

data = {
    'A': [1, 2, 3, 4],
    'B': ['foo', 'bar', 'foo', 'bar'],
    'C': ['one', 'two', 'three', 'four'],
    'D': [0.1, 0.2, 0.3, 0.4]
}

df = pd.DataFrame(data)
print(df)

输出:

   A    B      C    D
0  1  foo    one  0.1
1  2  bar    two  0.2
2  3  foo  three  0.3
3  4  bar   four  0.4

现在我们将列 ‘B’ 和 ‘C’ 设置为多级索引:

df.set_index(['B', 'C'], inplace=True)
print(df)

输出:

           A    D
B   C            
foo one    1  0.1
bar two    2  0.2
foo three  3  0.3
bar four   4  0.4

多级索引已成功设置。

2.2 重置多级索引

同样,我们可以使用 reset_index() 方法来重置多级索引,将多级索引还原为默认的整数索引。继续以上面的示例:

df.reset_index(inplace=True)
print(df)

输出:

     B      C  A    D
0  foo    one  1  0.1
1  bar    two  2  0.2
2  foo  three  3  0.3
3  bar   four  4  0.4

多级索引已成功重置为整数索引。

3. 设置索引的其他用法

除了上述介绍的基本用法外,设置索引还有一些其他用法,如指定 drop=False 保留原始列等。例如,我们可以在 set_index() 方法中指定 drop=False 参数来保留原始列。考虑以下的数据表 df

data = {
    'A': [1, 2, 3, 4],
    'B': ['foo', 'bar', 'foo', 'bar'],
    'C': ['one', 'two', 'three', 'four'],
    'D': [0.1, 0.2, 0.3, 0.4]
}

df = pd.DataFrame(data)
print(df)

输出:

   A     B      C    D
0  1   foo    one  0.1
1  2   bar    two  0.2
2  3   foo  three  0.3
3  4   bar   four  0.4

现在我们将列 ‘B’ 设置为索引,并保留原始列:

df.set_index('B', drop=False, inplace=True)
print(df)

输出:

     B  A     C    D
B                    
foo  foo  1    one  0.1
bar  bar  2    two  0.2
foo  foo  3  three  0.3
bar  bar  4   four  0.4

可以看到,原始列 ‘B’ 已经被保留在索引中。

结语

本文介绍了在 Pandas 中设置索引的基本用法,包括设置单个索引、重置索引、设置多级索引等。通过设置索引,我们可以更加方便地对数据表进行处理和分析。在实际数据处理和分析中,灵活运用设置索引的技巧将大大提高工作效率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程