python - 仅选择多索引 DataFrame 的一个索引

标签 python pandas select dataframe indexing

我正在尝试使用多索引 DataFrame 中的一个索引创建一个新的 DataFrame。

                   A         B         C
first second                              
bar   one     0.895717  0.410835 -1.413681
      two     0.805244  0.813850  1.607920
baz   one    -1.206412  0.132003  1.024180
      two     2.565646 -0.827317  0.569605
foo   one     1.431256 -0.076467  0.875906
      two     1.340309 -1.187678 -2.211372
qux   one    -1.170299  1.130127  0.974466
      two    -0.226169 -1.436737 -2.006747

理想情况下,我想要这样的东西:

In: df.ix[level="first"]

和:

Out:

               A         B         C
first                               
bar        0.895717  0.410835 -1.413681
           0.805244  0.813850  1.607920
baz       -1.206412  0.132003  1.024180
           2.565646 -0.827317  0.569605
foo        1.431256 -0.076467  0.875906
           1.340309 -1.187678 -2.211372
qux       -1.170299  1.130127  0.974466
          -0.226169 -1.436737 -2.006747
`

本质上,我想删除多索引中除 first 级别之外的所有其他索引。有没有简单的方法可以做到这一点?

最佳答案

一种方法可能是简单地将 df.index 重新绑定(bind)到 MultiIndex 的所需级别。您可以通过指定要保留的标签名称来执行此操作:

df.index = df.index.get_level_values('first')

或使用级别的整数值:

df.index = df.index.get_level_values(0)

MultiIndex 的所有其他级别都将在这里消失。

关于python - 仅选择多索引 DataFrame 的一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140771/

相关文章:

javascript - 加密: simulate SSL in javascript and python

python - 从 crontab 运行 python 脚本

python - 如何应用函数可以使用 python-pandas 测试数据框中列表中的元素是否?

Java 选择列表元素

python - 在Python中计算向量的最快方法

python - 如何在 Python 控制台程序中使用 echo "*"读取密码?

python - 在每行满足另一个条件后查找第一行有条件的行

python - 有没有一种快速的方法可以将 pandas DataFrame 变成漂亮的 HTML 表格?

php - FIND_IN_SET 错误

mysql - 如何获得 TreeView ?数据库