所有
我有以下格式的数据框:
ind date value1 value2
x1 23-04-2018 1.3 7.2
x1 03-05-2018 4.6 3.5
x2 04-04-2018 2.0 8.5
ind 和日期是指数。如果 ind 的一个值有多行,我只想保留最新的日期。
因此,在我的示例中,首选结果是:
ind date value1 value2
x1 03-05-2018 4.6 3.5
x2 04-04-2018 2.0 8.5
日期列采用日期时间格式,因此查找组内的最大日期可能有效。但是是否可以使用这样的条件,例如与groupby结合使用(如SQL中的GROUPBY和HAVING)。或者有更好的方法吗?
有没有人有解决方案或提示?
编辑:我略微改变了我的榜样。多行不一定是重复的。
答案 0 :(得分:0)
一种有点冗长的方法,不需要排序:
# Gets the row indices as list of lists
idx = df.reset_index('date', drop=False) \
.groupby('ind', sort=False)['date'] \
.max() \
.iteritems()
df.loc(axis=0)[list(idx)]
这取决于['idx', 'date']
中df
的顺序。