如何删除python pandas.DataFrame 的多重index

本文介绍如何在Pandas中去除DataFrame的多层索引。通过使用`droplevel`方法两次,成功将原始带有两层索引的数据简化为单层索引结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下dataframe想要删除多层index

top1000[:10]

      name sex births year prop
year sex            
1880 F 0 Mary F 7065 1880 0.077643
1 Anna F 2604 1880 0.028618
2 Emma F 2003 1880 0.022013
3 Elizabeth F 1939 1880 0.021309
4 Minnie F 1746 1880 0.019188
5 Margaret F 1578 1880 0.017342
6 Ida F 1472 1880 0.016177
7 Alice F 1414 1880 0.015540
8 Bertha F 1320 1880 0.014507
9 Sarah F 1288 1880 0.014155

top1000.index = top1000.index.droplevel()
top1000.index = top1000.index.droplevel()
top1000[:10]
  name sex births year prop
0 Mary F 7065 1880 0.077643
1 Anna F 2604 1880 0.028618
2 Emma F 2003 1880 0.022013
3 Elizabeth F 1939 1880 0.021309
4 Minnie F 1746 1880 0.019188
5 Margaret F 1578 1880 0.017342
6 Ida F 1472 1880 0.016177
7 Alice F 1414 1880 0.015540
8 Bertha F 1320 1880 0.014507
9 Sarah F 1288 1880 0.014155




Out[484]:
  name sex births year prop
0 Mary F 7065 1880 0.077643
1 Anna F 2604 1880 0.028618
2 Emma F 2003 1880 0.022013
3 Elizabeth F 1939 1880 0.021309
4 Minnie F 1746 1880 0.019188
5 Margaret F 1578 1880 0.017342
6 Ida F 1472 1880 0.016177
7 Alice F 1414 1880 0.015540
8 Bertha F 1320 1880 0.014507
9 Sarah F 1288 1880 0.014155
### 如何在 Pandas DataFrame 中使用 `loc` 方法 Pandas 的 `DataFrame.loc[]` 是基于标签的索引方法,用于访问数据帧中的行、列或两者。此属性允许通过指定轴上的标签来选择数据[^1]。 对于单个标量标签和列表形式的一组标签均适用。可以单独获取某一行的数据,也可以同时选取多行或多列组合而成的新子集。下面是一些具体的例子: #### 获取单一元素 当想要获得位于特定行列交叉位置处的一个单元格值时,可以通过提供两个参数——即对应的行名与列名实现定位并读取该数值。 ```python import pandas as pd # 创建一个简单的 DataFrame 实例 df = pd.DataFrame({ 'A': ['foo', 'bar'], 'B': [1, 2], }, index=['first_row', 'second_row']) value = df.loc['first_row', 'A'] print(value) # 输出: foo ``` #### 提取整行或整列 如果只需要取得整个行或者一整列的内容,则只需给出相应的名称即可完成操作。 ```python row_data = df.loc['first_row'] column_data = df.loc[:, 'A'] print(row_data) """ Output: A foo B 1 Name: first_row, dtype: object """ print(column_data) """ Output: first_row foo second_row bar Name: A, dtype: object """ ``` #### 多重条件筛选 还可以利用布尔表达式来进行更复杂的查询任务,比如根据多个字段的不同约束条件联合起来过滤出符合条件的目标记录集合。 ```python filtered_df = df[(df['A'] == 'foo') & (df['B'] > 0)] print(filtered_df) """ Output: A B first_row foo 1 """ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值