我有一个数据框,我得到以下内容:
index1 index2 results
0 0 0 8.605016
1 0 1 8.600410
2 0 2 8.585075
3 1 0 8.550355
4 1 1 8.557221
5 1 2 8.557640
6 2 0 4.360486
7 2 1 4.362304
8 2 2 4.354539`
我希望按index1
进行分组并获取最小值。我期待这样的输出:
index1 index2 results
0 0 2 8.585075
1 1 0 8.550355
2 2 2 4.354539
答案 0 :(得分:1)
我的解决方案有效,如果...
issues = [];
var self = this;
...
var callback = function callback(response) {
JSON.parse(response.content).issues.forEach(issue => {
issuesList.push(new Issues(issue.id, issue.status.name, issue.tracker.name, issue.tracker.name));
self.issues = issuesList;
i++;
})
}
this._issuesService.fetchIssues(callback);
}
只有groupby
- 那么您可以获得所需的输出。
您需要index1
个indexes
值的min
值idxmin
,然后按ix
选择:
print (df.groupby('index1')['results'].idxmin())
print (df.ix[df.groupby('index1')['results'].idxmin()])
index1 index2 results
2 0 2 8.585075
3 1 0 8.550355
8 2 2 4.354539
另一个解决方案是sort_values
和groupby
,汇总first
:
print (df.sort_values(by="results").groupby('index1', as_index=False).first())
index1 index2 results
0 0 2 8.585075
1 1 0 8.550355
2 2 2 4.354539