gpt4 book ai didi

python - Pandas 中的 If-else 条件赋值

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

我想根据现有列的值将值分配给列。这段代码有效,但我想在不就地执行它,也许使用 assignapply

如果这可以在一个步骤中完成,它还可以避免下面发生的从 intfloat 的隐式转换。

我已经包含了我使用 assign 的尝试,它引发了一个 ValueError

import pandas as pd

original = pd.DataFrame({'col': ['a', 'b', 'c']})

d = original.copy()
d.loc[d.col.isin(['b', 'x']), 'new'] = 1
d.loc[~d.col.isin(['b', 'x']), 'new'] = 99
d

# : col new
# : 0 a 99.0
# : 1 b 1.0
# : 2 c 99.0

# original.assign(new=lambda x: (1 if x.col.isin(['b', 'x']) else 99)) # ValueError

最佳答案

您可以使用 numpy.where():

import numpy as np
original["new"] = np.where(original["col"].isin(["b", "x"]), 1, 99)
print(original)
# col new
#0 a 99
#1 b 1
#2 c 99

关于python - Pandas 中的 If-else 条件赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49762705/

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