gpt4 book ai didi

python - Pandas 数据框问题。创建列,其中行单元格获取另一个行单元格的值

转载 作者:行者123 更新时间:2023-12-04 10:20:24 27 4
gpt4 key购买 nike

我有这个 Pandas 数据框。它按“h”列排序。我想要的是添加两个新列,其中:
每个区域的项目,将有一个最大边界和一个最小边界。 (它们对于区域中的每个项目都是相同的)。最大边界将是前一个区域的最小“h”值,最小边界将是下一个区域的最大“h”值

name    h   w   set row zone
ZZON5 40 36 A 0 0
DWOPN 38 44 A 1 0
5SWYZ 37 22 B 2 0
TFQEP 32 55 B 3 0
OQ33H 26 41 A 4 1
FTJVQ 24 25 B 5 1
F1RK2 20 15 B 6 1
266LT 18 19 A 7 1
HSJ3X 16 24 A 8 2
L754O 12 86 B 9 2
LWHDX 11 68 A 10 2
ZKB2F 9 47 A 11 2
5KJ5L 7 72 B 12 3
CZ7ET 6 23 B 13 3
SDZ1B 2 10 A 14 3
5KWRU 1 59 B 15 3


我希望:
name    h   w   set row zone maxB minB
ZZON5 40 36 A 0 0 26
DWOPN 38 44 A 1 0 26
5SWYZ 37 22 B 2 0 26
TFQEP 32 55 B 3 0 26
OQ33H 26 41 A 4 1 32 16
FTJVQ 24 25 B 5 1 32 16
F1RK2 20 15 B 6 1 32 16
266LT 18 19 A 7 1 32 16
HSJ3X 16 24 A 8 2 18 7
L754O 12 86 B 9 2 18 7
LWHDX 11 68 A 10 2 18 7
ZKB2F 9 47 A 11 2 18 7
5KJ5L 7 72 B 12 3 9
CZ7ET 6 23 B 13 3 9
SDZ1B 2 10 A 14 3 9
5KWRU 1 59 B 15 3 9

有任何想法吗?

最佳答案

首先按区域分组并找到其中的最小值和最大值

min_max_zone = df.groupby('zone').agg(min=('h', 'min'), max=('h', 'max'))

现在您可以使用申请:
df['maxB'] = df['zone'].apply(lambda x: min_max_zone.loc[x-1, 'min'] 
if x-1 in min_max_zone.index else np.nan)

df['minB'] = df['zone'].apply(lambda x: min_max_zone.loc[x+1, 'max']
if x+1 in min_max_zone.index else np.nan)

关于python - Pandas 数据框问题。创建列,其中行单元格获取另一个行单元格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60891442/

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