gpt4 book ai didi

python - 如果至少有一个值低于阈值,则选择给定 2 列的行

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

我有一个 Pandas 数据框

NAME    VALUE
A 2
A 1
B 4
A 3
C 2
B 8

如果“名称”列中的值在 3 以下的“值”中至少包含一个与名称相对应的值,我想添加一列,这样:

NAME    VALUE   BELOW_THRESHOLD
A 2 Y
A 4 Y
B 4 N
A 3 Y
C 2 Y
B 8 N

最佳答案

您可以在 NAME 上使用 groupby应用 lambda 来测试您的条件并获取 max 值这将是 True 如果任何满足条件并使用 map 分配:

In [317]:
df['BELOW_THRESHOLD'] = df['NAME'].map(df.groupby('NAME')['VALUE'].apply(lambda x: (x < 3).max()))
df

Out[317]:
NAME VALUE BELOW_THRESHOLD
0 A 2 True
1 A 1 True
2 B 4 False
3 A 3 True
4 C 2 True
5 B 8 False

在使用np.where后可以转换为YN:

In [318]:
df['BELOW_THRESHOLD'] = np.where(df['BELOW_THRESHOLD'], 'Y','N')
df

Out[318]:
NAME VALUE BELOW_THRESHOLD
0 A 2 Y
1 A 1 Y
2 B 4 N
3 A 3 Y
4 C 2 Y
5 B 8 N

关于python - 如果至少有一个值低于阈值,则选择给定 2 列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125815/

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