我试图在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']]
谢谢
答案 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()