gpt4 book ai didi

python - 根据另一个 df 列的值范围设置 pandas df 列的值

转载 作者:行者123 更新时间:2023-12-01 13:13:04 25 4
gpt4 key购买 nike

我有一个看起来像这样的 df:

df = pd.DataFrame({'a':[-3,-2,-1,0,1,2,3], 'b': [1,2,3,4,5,6,7]})

我想创建一个“c”列,它查看“a”的值以确定对“b”执行什么操作并将其显示在新列“c”中。

我有一个使用 iterrow 的解决方案,但是,我的真实 df 很大并且 iterrows 效率低下。

我想做的是以向量化形式执行此操作。我的“慢”解决方案是:

df['c'] = 0
for index, row in df.iterrows():
if row['a'] <=-2:
row['c'] = row['b']*np.sqrt(row[b]*row[a])
if row['a'] > -2 and row['a'] < 2:
row['c'] = np.log(row['b'])
if row['a'] >= 2:
row['c'] = row['b']**3

最佳答案

使用np.select .这是一个矢量化操作。

conditions = [
df['a'] <= -2,
(df['a'] > -2) & (df['a'] < 2),
df['a'] >= 2
]

values = [
df['b'] * np.sqrt(df['b'] * df['a'])
np.log(df['b']),
df['b']**3
]

df['c'] = np.select(conditions, values, default=0)

关于python - 根据另一个 df 列的值范围设置 pandas df 列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58829730/

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