gpt4 book ai didi

python-3.x - 如何检查值是正数还是负数并在数据框的列中插入新值

转载 作者:行者123 更新时间:2023-12-01 22:20:31 27 4
gpt4 key购买 nike

我正在使用 pandas 和 python,我有一个任务需要检查

        GDP         diff    sign
Quarter
1999q4 12323.3 NaN None
2000q1 12359.1 35.8 None
2000q2 12592.5 233.4 None
2000q3 12607.7 15.2 None
2000q4 12679.3 71.6 None

让上面的dataframe为df,当我这样做的时候

if df.iloc[2]['diff'] > 0:
df.iloc[2]['sign'] = "Positive"

数据框上的值未更新。有什么地方我做错了吗?它是一个直接赋值,就像我们如何做 df['something'] = 'some value' 并且通过这样做它将比值插入该列下的 df 中。但是当我在需要确定正面或负面的地方执行上述操作时,它仍然显示为无

df.iloc[2]['sign']

我尝试将 apply 与 lambda 一起使用,但无法获得我想要的结果。

一些帮助将不胜感激谢谢。

最佳答案

您可以使用双 numpy.where首先通过 isnull 过滤 NaN 值然后根据条件 df['diff'] > 0:

df.sign = np.where(df['diff'].isnull(), np.nan,
np.where(df['diff'] > 0, 'Positive', 'Negative'))
print (df)
Quarter GDP diff sign
0 1999q4 12323.3 NaN NaN
1 2000q1 12359.1 35.8 Positive
2 2000q2 12592.5 233.4 Positive
3 2000q3 12607.7 15.2 Positive
4 2000q4 12679.3 -71.6 Negative

因为如果仅使用 df['diff'] > 0 得到 Negative NaN 值:

df.sign = np.where(df['diff'] > 0, 'Positive', 'Negative')
print (df)
Quarter GDP diff sign
0 1999q4 12323.3 NaN Negative
1 2000q1 12359.1 35.8 Positive
2 2000q2 12592.5 233.4 Positive
3 2000q3 12607.7 15.2 Positive
4 2000q4 12679.3 -71.6 Negative

关于python-3.x - 如何检查值是正数还是负数并在数据框的列中插入新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40452580/

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