gpt4 book ai didi

python - 选择最接近给定值的行

转载 作者:行者123 更新时间:2023-11-28 22:19:39 25 4
gpt4 key购买 nike

          A   B       C
0 01:00:00 24 Andrew
1 01:00:00 28 Edd
2 01:00:00 17 Emma
3 01:00:00 10 Fred
4 02:00:00 11 Andrew
5 02:00:00 35 Edd
6 02:00:00 45 Emma
7 02:00:00 14 Fred

我想为每个 A 组选择一行,条件如下:

  • 选择最接近 15 的 B 值(在 01:00:00 的情况下,最接近 15 的值是 17 ;在 02:00:00 中,选择 14)。

输出应该是:

          A   B       C
2 01:00:00 17 Emma
7 02:00:00 14 Fred

最佳答案

我认为需要:

df = df.loc[df['B'].sub(15).abs().groupby(df['A']).idxmin()]
print (df)
A B C
2 01:00:00 17 Emma
7 02:00:00 14 Fred

详细信息:

print (df['B'].sub(15).abs())
0 9
1 13
2 2
3 5
4 4
5 20
6 30
7 1
Name: B, dtype: int64

print (df['B'].sub(15).abs().groupby(df['A']).idxmin())
A
01:00:00 2
02:00:00 7
Name: B, dtype: int64

解释:

  1. 首先减去sub并获得绝对值
  2. groupby按列 A 和每组通过 DataFrameGroupBy.idxmin 获得最小值的索引
  3. loc 选择行

关于python - 选择最接近给定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49572035/

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