gpt4 book ai didi

python - 根据条件为 pandas df 列分配三个值

转载 作者:行者123 更新时间:2023-11-28 21:31:55 24 4
gpt4 key购买 nike

我有一个 pandas df,其中包含一列正数、负数和零。我想创建另一列,如果 no > 0,则为 1;如果 no < 0,则为 -1;如果数字为 0,则为 0。

我尝试对每一行使用 for 循环来执行此操作,但花费的时间太长。我想知道是否有更快的方法来做到这一点。我还想知道是否可以将相同的逻辑扩展到正和负 timedelta 对象。
谢谢。

我的最终 df 应该如下所示:

df = pd.DataFrame({'a':[1, 2, -1, 0, -2], 'b':[1, 1, -1, 0, -1]})

a b
0 1 1
1 2 1
2 -1 -1
3 0 0
4 -2 -1

其中 b 是根据 a 的值分配的列

最佳答案

这是一种方法numpy sign

np.sign(df.a)
Out[118]:
0 1
1 1
2 -1
3 0
4 -1
Name: a, dtype: int64
df['b'] = np.sign(df.a)

关于python - 根据条件为 pandas df 列分配三个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57329529/

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