gpt4 book ai didi

python - Pandas 创建新的数据框,从多个观察中选择最大值

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:59 24 4
gpt4 key购买 nike

我想根据列中的最大值制作一个新的数据框。但是,我有来自同一受访者的多个观察结果,我只想从列 value1 中为每个受访者选择最大值。这是一个简化的示例:

df:

   respondent  value1  value2
0 1 3 12
1 1 5 34
2 1 1 43
3 2 4 12
4 2 6 34
5 2 9 54
6 3 2 32
7 3 1 2
8 3 3 21

这是我想要的结果:

新的:

  respondent  value1  value2
0 1 5 34
1 2 9 54
2 3 3 21

有什么想法吗?

最佳答案

以下实现了您想要的并且似乎比@CT Zhu 的回答更快:

In [30]:

df.loc[df.groupby('respondent').value1.idxmax().values]
Out[30]:
respondent value1 value2
1 1 5 34
5 2 9 54
8 3 3 21
In [31]:

%timeit df.loc[df.groupby('respondent').value1.idxmax().values]
%timeit df[df.groupby('respondent').value1.transform(lambda x: x==x.max())]
%timeit df.sort(['respondent', 'value1'], ascending=[1,0]).groupby('respondent').head(1)
100 loops, best of 3: 1.76 ms per loop
100 loops, best of 3: 2.99 ms per loop
100 loops, best of 3: 4.42 ms per loop

此外,上述内容是使用 python 3.3 在 pandas 版本 0.12.0 64 位上实现的

关于python - Pandas 创建新的数据框,从多个观察中选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23767883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com