Pandas Multiindex 从索引的第一个条目获取值

2024-01-07

我有以下多索引数据框:

from io import StringIO
import pandas as pd
datastring = StringIO("""File,no,runtime,value1,value2
    A,0, 0,12,34
    A,0, 1,13,34
    A,0, 2,23,34
    A,1, 6,23,38
    A,1, 7,22,38
    B,0,17,15,35
    B,0,18,17,35
    C,0,34,23,32
    C,0,35,21,32
    """)    
df = pd.read_csv(datastring, sep=',')
df.set_index(['File','no',df.index], inplace=True)


>> df
               runtime  value1  value2
File   no               
A      0    0     0       12      34
            1     1       13      34
            2     2       23      34
       1    3     6       23      38
            4     7       22      38
B      0    5     17      15      35
            6     18      17      35
C      0    7     34      23      32
            8     35      21      32

我想要得到的只是带有新文件和不同数字的每个条目的第一个值

A 0 34
A 1 38
B 0 35
C 0 32

我能找到的最相似的问题在哪里

仅知道结果测量计数的对 pandas 数据框进行重新采样 https://stackoverflow.com/questions/20107958/resample-pandas-dataframe-only-knowing-result-measurement-count/20108446#20108446

pandas 中基于 MultiIndex 的索引 https://stackoverflow.com/questions/14964493/multiindex-based-indexing-in-pandas

在 pandas MultiIndex DataFrame 中选择行 https://stackoverflow.com/questions/53927460/select-rows-in-pandas-multiindex-dataframe

但我无法从它们中构建解决方案。我得到的最好的是ix操作,但由于技术上的值仍然存在(只是不显示),结果是

idx = pd.IndexSlice
df.loc[idx[:,0],:]

例如,可以过滤0值,但仍会返回数据帧的整个其余部分。

多重索引是否是完成当前任务的正确工具?怎么解决这个问题呢?


Use GroupBy.first http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.GroupBy.first.html按第一级和第二级MultiIndex:

s = df.groupby(level=[0,1])['value2'].first()
print (s)
File  no
A     0     34
      1     38
B     0     35
C     0     32
Name: value2, dtype: int64

如果需要一栏DataFrame使用一个元素list:

df1 = df.groupby(level=[0,1])[['value2']].first()
print (df1)
         value2
File no        
A    0       34
     1       38
B    0       35
C    0       32

另一个想法是删除3rd水平由DataFrame.reset_index http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html并按以下条件过滤Index.get_level_values http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.get_level_values.html with boolean indexing http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#boolean-indexing:

df2 = df.reset_index(level=2, drop=True)
s = df2.loc[~df2.index.duplicated(), 'value2']
print (s)
File  no
A     0     34
      1     38
B     0     35
C     0     32
Name: value2, dtype: int64
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas Multiindex 从索引的第一个条目获取值 的相关文章

随机推荐

  • 网页中允许的最大 div 数

    您好 我想知道网页上允许的 div 数量是否有限制 例如 当 Internet Explorer 必须渲染具有一千个 div 的网页时 它会开始感到窒息吗 我知道这是一篇旧文章 但我最近做了一个与该主题直接相关的测试 我想分享我的结果 我创
  • Socket.io 在 Express Route 上发出

    我想在调用某些 API 路由时向客户端发送一些数据 我必须遵循 server js 上的代码 var app express var http require http Server app var io require socket io
  • 为什么此代码在到达 StreamReader 的第一个 ReadLine 时挂起?

    我在第一个参数中将一个大文件传递给下面的 SendXMLFile 但由于它导致手持设备 挂起 冻结 我暂时硬编码了一个小得多的文件 3 KB 而不是 1121 KB 供测试用 该文件确实存在 与 exe dll 位于同一文件夹中 如以下代码
  • Iframe 和同源策略以及反向代理黑客

    我一直在阅读具有不同域的 Iframe 然后是父文档 我有点困惑 据我了解 如果 iframe 与其父文档来自同一域 则父文档可以访问 iframe 的文档 看来我可以通过以下技巧来规避这个问题 我在以下位置设置了一个网络服务器mydoma
  • Android:处理ListView回收

    我正在开发一个音板应用程序 在其中使用 Listview Activity 但是由于Android的Listview具有回收其listview的属性 滚动列表视图时 我对所选文本视图所做的更改会反映在所有页面中 我不希望这种事发生 那么我该
  • J2ME 的 JSON 解析器

    我需要一个与 J2ME CLDC 1 1 配合使用的基本 JSON 解析器 Google 搜索返回了大量关于此问题的答案 有些甚至在 stackoverflow 上 但似乎所有内容都指向不再可用的库和解决方案 例如 很多都指向应该位于 js
  • 过滤负时间增量

    考虑一系列持有timedelta64 ns 测量两个事件 A 和 B 之间的时间差 gt time deltas 499900 1 days 23 45 13 499916 1 days 23 50 57 499917 00 03 27 4
  • VB 6:如何执行 .bat 文件但等到其运行完成后再继续?

    VB 6 如何执行 bat 文件但等到其运行完成后再继续 您将需要使用 Win32 API 调用Shell执行Ex http msdn microsoft com en us library bb762154 VS 85 aspx和从SHE
  • 如何处理自动模块中的拆分包?

    我目前正在测试将现有应用程序迁移到 Jigsaw Modules 我的模块之一使用 ElasticSearch 及其 Groovy 插件 org elasticsearch elasticsearch org elasticsearch m
  • boost::spirit 替代解析器返回重复项

    我正在研究https github com F Bergemann RegexSplitter https github com F Bergemann RegexSplitter 目的 解析正则表达式字符串 并创建可破坏和不可破坏的顶级子
  • 将整数数组转换为字符串的最佳方法是什么?

    我想转换一个 int 数组 像这样 1 1 2 1 转换为字符串 1121 最好的 最Pythonic的 方法是什么 我总是可以这样做 然后删除多余的括号 gt gt gt str 1 2 1 1 1 2 1 1 或者我可以这样做 s fo
  • Oracle 数据库变更通知

    我是 DCN 新手 我可以使用它来检测表中列的更新以及该表中的插入吗 我指的是this https docs oracle com cd E11882 01 java 112 e16548 dbchgnf htm JJDBC28815 是的
  • 如何修复div高度

    我正在开发一个聊天控制应用程序 我的问题是这样的 我输入文本 这用于拨打休息电话 获取响应并将其添加到聊天窗口 目前我的问题是这样的 聊天窗口变大 页面随着聊天框 div 一起滚动 有人可以告诉我如何停止整个页面的这种增量吗 简单来说 我的
  • 如何停止R中的for循环并保留数据

    我的代码在日期的 for 循环中运行 该代码需要一段时间才能运行 还剩几天时间 但我迫切需要任何结果 有没有办法打破代码 for 循环 但保留到目前为止已生成的所有数据 是的 您可以按 escape 检查结果 然后重新启动循环 for ii
  • 扩展协议,其中 Self:Swift 中的通用类型(需要 <...> 中的参数)

    我有一个需要泛型的类class Collection
  • 如何将 csv 字符串转换为 pandas 中的列表?

    我正在使用具有以下格式的 csv 文件 Id Sequence 3 1 3 13 87 1053 28576 2141733 508147108 402135275365 1073376057490373 97003854893559701
  • Jquery - 使用 .load 和选择器加载页面不会执行脚本?

    我正在尝试使用 load 方法将一个页面加载到另一页面中 此加载的页面包含一个我想在加载完成后执行的脚本 我整理了一个简单的示例来演示 索引 html
  • MVC:存储库和服务

    我对存储库中定义的内容以及留给服务的内容的限制感到困惑 存储库应该只创建与数据库中的表匹配的简单实体 还是可以使用这些实体的组合创建复杂的自定义对象 换句话说 服务是否应该在存储库上进行各种 Linq to SQL 查询 或者所有的查询都应
  • GSON 将布尔值序列化为 0 或 1

    All 我正在尝试执行以下操作 public class SomClass public boolean x public int y public String z SomClass s new SomClass s x true s y
  • Pandas Multiindex 从索引的第一个条目获取值

    我有以下多索引数据框 from io import StringIO import pandas as pd datastring StringIO File no runtime value1 value2 A 0 0 12 34 A 0