2017-04-19 45 views
1

我有一个数据帧,其中一些行有重复的指标下降重复,保持最大值为每列跨复制

A B C D 
k1 1 2 3 1 
k1 2 1 1 3 
k2 1 2 1 2 

我想继续在每个列中的最大值重复的内:

A B C D 
k1 2 2 3 3 
k2 1 2 1 2 

想法?

+0

你可以使用'df.groupby(df.index).max()'吗? – pshep123

+1

df.groupby(level = 0).max()会给你想要的输出。 @ pshep123,你可以发表你的评论作为回答 – Vaishali

+1

@ A-Za-z,谢谢。我从我的手机输入这个,所以没有运行代码,但期望它的工作。 – pshep123

回答

2

亚历克斯,我觉得简单的东西:

df.groupby(df.index).max() 

应该为你做它。

+0

当我这样做时,我的索引字段奇怪地发生了变异,导致我认为groupby可能会做一些奇怪的事 - 我给它一个字符串作为索引,在groupby之后它是一个日期时间。有任何想法吗? –

+0

您可以将该索引重新命名为列和groupby新列吗?另外,你检查了dtype吗?您所使用的数据框与您发布的数据帧有很大不同吗? – pshep123

+0

@ Alex Lenail,你可以发布你正在尝试的数据框吗?因为这段代码在你现在发布的df上工作正常 – Vaishali