DF中实现多个行索引
时间: 2024-01-21 21:17:46 浏览: 47
在 Pandas 中,可以通过使用 MultiIndex 对象来实现多个行索引。MultiIndex 是一种用于创建多维索引的 Pandas 类型,它允许在行和列上使用多个层次结构的标签。
下面是一个示例,演示如何创建具有多个行索引的 DataFrame:
```python
import pandas as pd
# 创建一个带有多个行索引的 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]},
index=pd.MultiIndex.from_tuples([('foo', 'bar'), ('foo', 'baz'),
('qux', 'spam'), ('qux', 'eggs')],
names=['first', 'second']))
print(df)
```
输出结果如下:
```
A B C
first second
foo bar 1 5 9
baz 2 6 10
qux spam 3 7 11
eggs 4 8 12
```
在这个示例中,我们创建了一个名为 `df` 的 DataFrame,其中行索引具有两个层次结构,分别为 `first` 和 `second`。我们使用 `pd.MultiIndex.from_tuples()` 方法创建了一个包含索引标签的元组列表,并将其作为 `index` 参数传递给 DataFrame。我们还使用了 `names` 参数来为每个索引级别指定名称。
有了这个多层次结构的行索引,我们可以使用 `.loc[]` 属性来访问特定行:
```python
# 使用 .loc[] 属性访问特定行
print(df.loc[('foo', 'bar')])
```
输出结果为:
```
A 1
B 5
C 9
Name: (foo, bar), dtype: int64
```
我们还可以使用 `.xs()` 方法来选择一个特定的索引级别:
```python
# 使用 .xs() 方法选择一个特定的索引级别
print(df.xs('foo', level='first'))
```
输出结果为:
```
A B C
second
bar 1 5 9
baz 2 6 10
```