在pandas数据帧中查找组的最小值/最大值

时间:2017-08-26 12:23:10

标签: python pandas dataframe group-by

我有以下数据框,包括列名,用户ID,卖家ID,时间戳。 现在对于像矩形那样的行,我只想要一行带有时间戳值= Min_Max。并删除所有其他行。在上面的数据框中的例子,对于第一个矩形中的行,我想要一行,即

424169 1272 813_1101

对于第二个矩形中的行,我想要一行:

424170 4268 1106_1111

enter image description here

1 个答案:

答案 0 :(得分:0)

没有数据的MVCE,但您可以使用df.groupby对前两列进行分组,然后调用dfGroupBy.agg汇总这些组并计算每组的minmax

out = df.groupby(['User ID', 'Seller ID'])\
                .agg(lambda x: str(x.min()) + '_' + str(x.max())).reset_index()
print(out)

或者,您可以在重新组合后进行组合:

out = df.groupby(['User ID', 'Seller ID'])\
              .agg(['min', 'max']).astype(str).apply('_'.join).reset_index()
print(out)