gpt4 book ai didi

python - 在条件 Pandas 的新列中分配值

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:08 24 4
gpt4 key购买 nike

我有一个数据框:

id    name    value
1 asd 0.5
2 fgg 0.8
3 hfd 1.5
4 erw 0.5

我必须创建一个新列 accept,这样,如果值大于 1.0,则将 outlier 设置为 1,否则设置为 0。

id    name    value   accept
1 asd 0.5 0
2 fgg 0.8 0
3 hfd 1.5 1
4 erw 0.5 0

我可以使用 iterrows 和 .loc 来完成。

for index,row in df.iterrows():
if row['value']>1:
df.loc[df.index==row.index,'accept'] = 1
else:
df.loc[df.index==row.index,'accept'] = 0

有没有更简单的方法可以不用迭代来做到这一点?

最佳答案

条件转换为 int - True 转换为 1False 转换为 0 :

df['accept'] = (df['value'] > 1).astype(int)
print (df)
id name value accept
0 1 asd 0.5 0
1 2 fgg 0.8 0
2 3 hfd 1.5 1
3 4 erw 0.5 0

对于其他值,请使用 numpy.where :

df['accept'] = np.where(df['value'] > 1, 'high', 'low')
print (df)
id name value accept
0 1 asd 0.5 low
1 2 fgg 0.8 low
2 3 hfd 1.5 high
3 4 erw 0.5 low

关于python - 在条件 Pandas 的新列中分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46952249/

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