gpt4 book ai didi

python - 根据系列条件创建新的 Pandas 列

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

RPython,我似乎无法想出一个基于有条件地检查其他列的创建新列的简单案例。

# In R, create a 'z' column based on values in x and y columns
df <- data.frame(x=rnorm(100),y=rnorm(100))
df$z <- ifelse(df$x > 1.0 | df$y < -1.0, 'outlier', 'normal')
table(df$z)
# output below
normal outlier
66 34

尝试使用 Python 中的等效语句:

import numpy as np
import pandas as pd
df = pd.DataFrame({'x': np.random.standard_normal(100), 'y': np.random.standard_normal(100)})
df['z'] = 'outlier' if df.x > 1.0 or df.y < -1.0 else 'normal'

但是,抛出以下异常:ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

实现这一目标的 pythonic 方法是什么?非常感谢:)

最佳答案

试试这个:

df['z'] = np.where((df.x > 1.0) | (df.y < -1.0), 'outlier', 'normal')

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

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