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

如何获得多索引数据框上的最后日期。

我将df简化为以下内容:

Dates =['01/10/2017', '28/10/2018', '20/10/2019', '27/10/2019', '30/10/2019']
cols = ['Date', 'P1', 'P2', 'P3']
ProductIDs = [1, 1, 1, 3, 5]
df= pd.DataFrame(index = ProductIDs, columns= cols)
df.index.name = 'ProductIDs'
df.Date = Dates
df = df.reset_index().set_index(['ProductIDs', 'Date'])
df[:] = np.random.randint(0,20, size=(5,3))
df

                            P1  P2  P3
ProductIDs      Date            
1            01/10/2017     3   2   2
             28/10/2018     1   4   9
             20/10/2019     3   14  3
3            27/10/2019     3   1   7
5            30/10/2019     2   13  4

df.groupby(level=[0]).last()给我想要的结果,不包括日期。我怎么也可以看到日期?

我怎样才能得到:

                            P1  P2  P3
ProductIDs      Date            
1            20/10/2019     3   14  3
3            27/10/2019     3   1   7
5            30/10/2019     2   13  4
耶斯列尔

首先通过提取第一级的值,通过提取get_level_values重复项,duplicated通过反转条件~最后筛选者boolean indexing

df1 = df[~df.index.get_level_values(0).duplicated(keep='last')]
print (df1)
                       P1  P2  P3
ProductIDs Date                  
1          28/10/2018  19   0   8
3          27/10/2019  16   2   3
5          30/10/2019  14   6   8

详情:

print (df.index.get_level_values(0))
Int64Index([1, 1, 3, 5], dtype='int64', name='ProductIDs')

print (df.index.get_level_values(0).duplicated(keep='last'))
[ True False False False]

print (~df.index.get_level_values(0).duplicated(keep='last'))
[False  True  True  True]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

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

熊猫`drop_duplicates`不保留第一行

熊猫:如何按列选择第一个或最后一个与 drop_duplicates 保持一致

获取第一个实例多索引并保留索引值

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

熊猫检查一个多索引列中的值是否在任何列中,不同多索引的同一行

熊猫索引插值填充最后一个数据点之后的缺失值

保留数组的第一个索引元素和最后一个索引元素

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

熊猫:返回值的第一个实例和最后一个实例的索引值

如何仅保留基于熊猫数据框中某些列的最后一个条目?

drop_duplicates 在一个范围内

通过仅索引最后一个轴进行操作

使用逻辑索引时,大熊猫仅应用返回第一个值

熊猫数据框:如何基于索引子集drop_duplicates()?

如何基于索引列执行大熊猫drop_duplicates

删除大熊猫中的重复项。copy()和drop_duplicates()删除仅出现一次的行

JOIN 查询以检索引用另一个表中单个列的多列

熊猫drop_duplicates。保持第一和最后。可能吗?

选择“熊猫”多索引组中的第一个子组

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

访问数据帧的最后一个索引值

片段结构值始终被最后一个索引覆盖

javascript获取最后一个重复值索引javascript

索引匹配(查找符合条件的最后一个值)

data.frame:在每一行中查找值的最后一个索引