dateframe怎么创建双层索引
时间: 2023-10-23 12:24:47 浏览: 57
在 pandas 中,可以使用 `MultiIndex` 类来创建双层索引的 DataFrame。以下是一个示例代码,演示如何创建一个双层索引的 DataFrame:
```python
import pandas as pd
# 创建一个具有双层索引的 DataFrame
data = {'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12],
'D': [13, 14, 15, 16]}
index = pd.MultiIndex.from_product([['GroupA', 'GroupB'], ['Index1', 'Index2']])
df = pd.DataFrame(data, index=index)
print(df)
```
输出结果:
```
A B C D
GroupA Index1 1 5 9 13
Index2 2 6 10 14
GroupB Index1 3 7 11 15
Index2 4 8 12 16
```
在上面的代码中,我们使用了 `pd.MultiIndex.from_product()` 方法来创建一个由两个列表组成的元祖,这两个列表分别是第一层索引和第二层索引。我们然后将这个元祖作为 `index` 参数传递给 `pd.DataFrame()` 方法,这样就创建了一个双层索引的 DataFrame。
另外,你还可以使用 `set_index()` 方法将一个或多个列作为双层索引:
```python
import pandas as pd
# 创建一个普通的 DataFrame
data = {'Group': ['GroupA', 'GroupA', 'GroupB', 'GroupB'],
'Index': ['Index1', 'Index2', 'Index1', 'Index2'],
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12],
'D': [13, 14, 15, 16]}
df = pd.DataFrame(data)
# 将 Group 和 Index 作为双层索引
df = df.set_index(['Group', 'Index'])
print(df)
```
输出结果:
```
A B C D
Group Index
GroupA Index1 1 5 9 13
Index2 2 6 10 14
GroupB Index1 3 7 11 15
Index2 4 8 12 16
```
在上面的代码中,我们使用了 `set_index()` 方法将 `Group` 和 `Index` 列作为双层索引。这里需要注意,如果要将多个列作为双层索引,需要将列名以列表形式传递给 `set_index()` 方法。
阅读全文