gpt4 book ai didi

python - 基于列条件的数据框列

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:53 27 4
gpt4 key购买 nike

     a    b
0 100 90
1 30 117
2 90 99
3 200 94

我想创建一个新的 df["c"],条件如下:

  • 如果 b(a ± 0.5a)c = a

  • 如果 b 超出 (a ± 0.5a)c = b

输出应该是:

     a    b    c
0 100 90 100
1 30 117 117
2 90 99 90
3 200 94 94

最佳答案

我认为需要numpy.where条件由 eval 创建或带有 &between 的链式条件:

df['c'] = np.where(df.eval("0.5 * a <= b <= 1.5 * a"), df.a, df.b)
#alternative 1
#df['c'] = np.where((df['b'] >= df.a.mul(1.5)) & (df['b'] <= df.a.mul(0.5)), df.a, df.b)
#alternative 2
#df['c'] = np.where(df['b'].between(df.a.mul(0.5), df.a.mul(1.5)), df.a, df.b)

print (df)
a b c
0 100 90 100
1 30 117 117
2 90 99 90
3 200 94 94

关于python - 基于列条件的数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49515698/

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