在熊猫数据框中访问内部多索引级别的最后一个元素

Costas Vogiatzis

multi index熊猫数据框中,我想访问第二个索引最后一个元素,以获取第一个索引的所有值。第二个索引中的级别数取决于第一个索引的值。我浏览了熊猫的多索引文档,但找不到任何能做到这一点的东西。

例如,对于以下数据框:

arrays = [ ['bar', 'bar', 'baz', 'foo', 'foo', 'foo',   'qux'],
           ['one', 'two', 'one', 'one', 'two', 'three', 'one']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame(np.random.randn(7, 3), index=index, columns=['A', 'B', 'C'])
df
                 A         B         C
first second
bar   one     0.289163 -0.464633 -0.060487
      two     0.224442  0.177609  2.156436
baz   one    -0.262329 -0.248384  0.925580
foo   one     0.051350  0.452014  0.206809
      two     2.757255 -0.739196  0.183735
      three  -0.064909 -0.963130  1.364771
qux   one    -1.330857  1.881588 -0.262170

我想得到:

                 A         B         C
first second
bar   two     0.224442  0.177609  2.156436
baz   one    -0.262329 -0.248384  0.925580
foo   three  -0.064909 -0.963130  1.364771
qux   one    -1.330857  1.881588 -0.262170

dataframes我与有过工作10M线,所以我想避免明确的循环。

耶斯列尔

groupby搭配使用tail

print (df.groupby(level='first').tail(1))
                     A         B         C
first second                              
bar   two     0.053054 -0.555819  0.589998
baz   one    -0.868676  1.293633  1.339474
foo   three   0.407454  0.738872  1.811894
qux   one    -0.346014 -1.491270  0.446772

因为last迷路level second

print (df.groupby(level='first').last())         
              A         B         C
first                              
bar    0.053054 -0.555819  0.589998
baz   -0.868676  1.293633  1.339474
foo    0.407454  0.738872  1.811894
qux   -0.346014 -1.491270  0.446772

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于单索引级别的多索引从数据帧中减去一个系列

熊猫多索引数据框-从多索引多系统中的一个索引中选择最大值

数据帧中最后一个元素的访问索引

熊猫多索引数据框-从多索引中的一个索引中选择最大值

如何强制多索引熊猫数据框在一个级别中具有相同数量的索引?

检索“熊猫数据框”列中列表的最后一个元素

熊猫多索引数据框:同一级别有2个值

将多个熊猫数据框组合成一个多索引数据框

在熊猫的多索引中仅保留单个索引的最后一个值(drop_duplicates)

如何在熊猫中返回多索引的最后一个索引

合并/合并两个Pandas数据框。使一个级别与另一个级别的索引匹配

在熊猫多索引数据帧上绘制两个级别的x_ticklabel

获取排序的numpy矩阵或熊猫数据框的最后一个非nan索引

获取熊猫数据框各列中最后一个非NaN值的行索引

熊猫:如何通过拆分从一个多索引级别向一个多索引添加级别?

获取multindex熊猫系列级别中序列的第一个和最后一个元素

重新索引一个级别的多索引的便捷方法

如何访问熊猫多索引数据框中的特定行

如何将两个二维数据框合并到一个多索引的多维熊猫数据框中?

如何使用一个顶级列对多索引熊猫数据框进行排序?

熊猫:为多索引数据框的所有行分配一个列表

来自另一个数据框的熊猫多索引分配

如何访问熊猫系列的最后一个元素?

访问此python熊猫系列的最后一个元素

在多索引数据框中使用“正向填充”有效地重新索引一个级别

多列作为MultiIndex数据框中每个级别的索引

按熊猫中一个索引级别的等级筛选?

如何从df中获取数据并将其放置到单元级别的另一个df中-熊猫

如何将多索引熊猫数据框的一个条目除以另一个