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