2022 2023 计算机 土木 计算机 土木 1、创建具有两层索引的DataFrame对象,如右图。 2、访问索引北京2022年对应的数据 北京 北大 601 582 611 591 清华 605
时间: 2024-10-12 09:06:04 浏览: 25
Pandas之DataFrame对象的列和索引之间的转化
在这个上下文中,似乎是在描述如何操作DataFrame数据结构,特别是在Python的pandas库中。DataFrame是一个二维表格型的数据结构,它有两层索引,通常包括行索引和列索引。
1. **创建具有两层索引的DataFrame**: 要创建这样一个DataFrame,你需要先定义两个层次的索引,比如一个时间序列(2022、2023)作为行索引,学科(计算机、土木)作为列的一级索引,然后在对应的单元格填充具体的数值数据。例如:
```python
index = pd.MultiIndex.from_product([['2022', '2023'], ['计算机', '土木']])
data = {
('2022', '计算机'): [601, 605],
('2022', '土木'): [582, None], # 如果2022年的数据只有一门课,可以指定None
('2023', '计算机'): [611, None], # 同理
('2023', '土木'): [591, 0] # 数据可以根据实际情况填写
}
df = pd.DataFrame(data, index=index)
```
2. **访问特定索引的数据**: 使用`loc`或`iloc`方法可以选择特定的索引值。假设你想获取“北京”在2022年的数据:
```python
# 使用列名(一级索引)
data_2022_beijing = df.loc['北京']
# 或者使用行索引和列名
data_2022_beijing_computing = df.loc[(slice('2022'), '计算机')]
data_2022_beijing_civil = df.loc[(slice('2022'), '土木')]
print(data_2022_beijing)
```
**相关问题--:**
1. 如何在pandas中创建多级索引的数据框?
2. `loc`和`iloc`的区别是什么,在这种场景下如何选择使用?
3. 如何添加新的数据到已有的多级索引DataFrame中?
阅读全文