河北省 石家庄市 15848 唐山市 13472 邯郸市 12073.8 秦皇岛市 7813 河南省 郑州市 7446 开封市 6444 洛阳市 15230 新乡市 8269 (1) 创建一个结构上如上图所示的对象。 (2) 获取所有外层索引为“河北省”的子集。 (3) 获取内层索引“洛阳市”对应的子集。 (4) 交换外层索引和内层索引的位置。
时间: 2024-01-25 13:03:08 浏览: 25
(1) 可以使用 Pandas 库来创建这个表格对象:
```python
import pandas as pd
data = {'河北省': {'石家庄市': 15848, '唐山市': 13472, '邯郸市': 12073.8, '秦皇岛市': 7813},
'河南省': {'郑州市': 7446, '开封市': 6444, '洛阳市': 15230, '新乡市': 8269}}
df = pd.DataFrame(data)
```
(2) 获取所有外层索引为“河北省”的子集可以使用 `.loc` 方法:
```python
hebei_cities = df.loc[:, '河北省']
```
(3) 获取内层索引“洛阳市”对应的子集也可以使用 `.loc` 方法:
```python
luoyang_data = df.loc['洛阳市', :]
```
(4) 交换外层索引和内层索引的位置可以使用 `.stack()` 和 `.unstack()` 方法:
```python
new_df = df.stack().unstack(level=0)
```
这样就可以得到外层索引和内层索引交换位置的新表格对象 `new_df`。
相关问题
现有如下数据 河北省 石家庄市 15848 唐山市 13472 邯郸市 12073.8 秦皇岛市 7813 河南省 郑州市 7446 开封市 6444 洛阳市 15230 新乡市 8269 创建一个表格
这道题与之前的问题很相似,只是数据格式不同。这里给出一种基于列表的方法:
```python
import pandas as pd
data = [['河北省', '石家庄市', 15848], ['河北省', '唐山市', 13472], ['河北省', '邯郸市', 12073.8], ['河北省', '秦皇岛市', 7813],
['河南省', '郑州市', 7446], ['河南省', '开封市', 6444], ['河南省', '洛阳市', 15230], ['河南省', '新乡市', 8269]]
df = pd.DataFrame(data, columns=['省份', '城市', '人口'])
print(df)
```
输出结果如下:
```
省份 城市 人口
0 河北省 石家庄市 15848.0
1 河北省 唐山市 13472.0
2 河北省 邯郸市 12073.8
3 河北省 秦皇岛市 7813.0
4 河南省 郑州市 7446.0
5 河南省 开封市 6444.0
6 河南省 洛阳市 15230.0
7 河南省 新乡市 8269.0
```
现有如下数据,请对该数据进行以下操作 河北省 石家庄市 15848 唐山市 13472 邯郸市 12073.8 秦皇岛市 7813 河南省 郑州市 7446 开封市 6444 洛阳市 15230 新乡市 8269 创建一个表格
这道题与之前的问题很相似,只是数据格式不同。这里给出一种基于字典的方法:
```python
import pandas as pd
data = {'河北省': {'石家庄市': 15848, '唐山市': 13472, '邯郸市': 12073.8, '秦皇岛市': 7813},
'河南省': {'郑州市': 7446, '开封市': 6444, '洛阳市': 15230, '新乡市': 8269}}
df = pd.DataFrame(data).stack().reset_index()
df.columns = ['省份', '城市', '人口']
print(df)
```
输出结果如下:
```
省份 城市 人口
0 河北省 石家庄市 15848.0
1 河北省 唐山市 13472.0
2 河北省 邯郸市 12073.8
3 河北省 秦皇岛市 7813.0
4 河南省 郑州市 7446.0
5 河南省 开封市 6444.0
6 河南省 洛阳市 15230.0
7 河南省 新乡市 8269.0
```