gpt4 book ai didi

python - 根据其他列的条件在 Pandas 中创建一个新列

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:56 26 4
gpt4 key购买 nike

我想根据 if 语句创建一个新列,该语句具有数据框中两个或多个其他列的条件。

例如,如果 (column1 < 10.0) 和 (column2 > 0.0),则 column3 = True。

我环顾四周,似乎其他人使用了带有 lambda 函数的 apply 方法,但我在这些方面有点新手。

我想我可以创建两个额外的列,如果每列都满足条件,则使该行为 1,然后对列求和以检查是否满足所有条件,但这似乎有点不雅。

如果您使用 apply/lambda 提供答案,我们假设数据框名为 sample_df,列为 col1、col2 和 col3。

非常感谢!

最佳答案

您可以使用 eval 这里简称:

# create some dummy data
df = pd.DataFrame(np.random.randint(0, 10, size=(5, 2)),
columns=["col1", "col2"])
print(df)

col1 col2
0 1 7
1 2 3
2 4 6
3 2 5
4 5 4

df["col3"] = df.eval("col1 < 5 and col2 > 5")
print(df)

col1 col2 col3
0 1 7 True
1 2 3 False
2 4 6 True
3 2 5 False
4 5 4 False

您也可以通过 (df["col1"] < 5) & (df["col2"] > 5) 不使用 eval 来编写它.

您还可以使用 np.where 来增强示例立即显式设置情况的值:

df["col4"] = np.where(df.eval("col1 < 5 and col2 > 5"), "Positive Value", "Negative Value")
print(df)

col1 col2 col3 col4
0 1 7 True Positive Value
1 2 3 False Negative Value
2 4 6 True Positive Value
3 2 5 False Negative Value
4 5 4 False Negative Value

关于python - 根据其他列的条件在 Pandas 中创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43160484/

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