关于如何从pandas dataframe中获取最后一个索引值似乎有很多答案,但是我要得到的是多索引数据帧中0级每个索引最后一行的索引位置号。我找到了一种使用循环的方法,但是数据帧是数百万行的,这个循环很慢。我想有一种更像Python的方式来做这件事。在
下面是df3的一个小例子。我想在df>;最后一行转换为新股之前,获取索引中数字的列表(或数组)。索引列就是我想要的结果。这是测向仪的索引位置
Stock Date Index
AAPL 12/31/2004
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/10/2005 3475
AMZN 12/31/2004
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/10/2005 6951
BAC 12/31/2004
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/10/2005 10427
这是我使用的代码,其中df3在数据帧中
^{pr2}$
dict.values
使用
dict
来跟踪值,将最后找到的值保留为重要值。在带循环
创建接受因子分解和唯一值数的函数
^{pr2}$然后可以用
然而,通常构造
MultiIndex
的方式,labels
对象已经是因式分解,levels
对象是唯一值。在更重要的是,我们可以使用Numba来使用即时编译来超级充电。在
时机
耶斯雷尔的解决方案。也很快。在
np.unique
我没有计时是因为我不喜欢。见下文:
使用
np.unique
和return_index
参数。这将返回找到每个唯一值的第一个位置。在这之后,我会做一些移动,以得到先前唯一值的最后一个位置。在注意:如果这个级别中的值是连续的。如果他们没有,我们就不得不做排序和取消排序,这是不值得的。除非是真的,否则我会教你怎么做。在
设置
来自@jezrael
对于} 对divakar answer稍加修改:
MultiIndex
的第一级索引,我用^{相关问题 更多 >
编程相关推荐