如何有效地按索引熊猫分组的列中选择最小值?

时间:2019-02-15 07:35:14

标签: python pandas

我试图在python熊猫中找到每个索引的最小值,但是我使用的数据集非常大。我将如何最有效地完成以下任务: 给定一个DataFrame:

index   col1 col2
i1      1    5
        2    6

i2      3    7
        4    8

我如何最有效地获得按索引分组的col1中的最小值,即[1,3]或{'i1':1,'i2':3}等,以下显然是子标准实现< / p>

min_time = [frame.loc[index_val]['timestamp_ms'].min() for index_val in ['i1','i2']]

谢谢

1 个答案:

答案 0 :(得分:1)

groupby与聚合min一起使用,然后将输出转换为列表或字典:

out = df.groupby(level=0)['col1'].min().tolist()

或者:

out = df.groupby(level=0)['col1'].min().to_dict()

使用Series.min的Nicer解决方案:

out = df['col1'].min(level=0).tolist()
out = df['col1'].min(level=0).to_dict()