在 Pandas 中将两列设置为元组索引

Nik*_*kko 3 python indexing pandas

假设我有一个包含第 0、1 列和“未来连接”的 Pandas 数据框。如何将列 0 和 1 设置为一个元组索引:

例如这个数据框:

0   1        Future Connection
6   840      0.0
4   197      1.0
620 979      0.0
Run Code Online (Sandbox Code Playgroud)

将导致:

0           Future Connection
(6, 840)    0.0
(4, 197)    1.0
(620, 979)  0.0
Run Code Online (Sandbox Code Playgroud)

jpp*_*jpp 5

如何将列 0 和 1 设置为一个元组索引:

Pandas 中不存在“元组索引”这个概念。您可以拥有object包含元组的dtype 索引,但不建议这样做。最好的选择是使用 a MultiIndex,它通过 NumPy 数组有效地存储基础值。事实上,熊猫通过以下方式促进了这一点set_index

df = df.set_index([0, 1])

print(df)
#          Future Connection
# 0   1                     
# 6   840                0.0
# 4   197                1.0
# 620 979                0.0

print(df.index)
# MultiIndex(levels=[[4, 6, 620], [197, 840, 979]],
#            labels=[[1, 0, 2], [1, 0, 2]],
#            names=[0, 1])

print(df.index.values)
# [(6, 840) (4, 197) (620, 979)]
Run Code Online (Sandbox Code Playgroud)