gpt4 book ai didi

python - 根据具有条件的另一列替换数据框列中的值

转载 作者:太空狗 更新时间:2023-10-30 00:58:17 25 4
gpt4 key购买 nike

我需要替换数据框 x 列中的值。结果应该类似于 x_new。因此,详细而言,我必须保留 x 列中的值,其中 y 为 1 和 255。在 1 和 255 之间,我必须将 x 值替换为 y 为 1 的值。255 和 1 之间的值应保持不变。那么我怎样才能得到列 x_new 呢?

我想它可以与替换和某些条件一起使用,但我不知道如何组合它。我期待着任何帮助和提示。

我的数据框看起来像例如:

x        y    z    x_new
12.28 1 1 12.28
11.99 0 1 12.28
11.50 0 1 12.28
11.20 0 1 12.28
11.01 0 1 12.28
9.74 255 0 9.74
13.80 0 0 13.80
15.2 0 0 15.2
17.8 0 0 17.8
12.1 1 1 12.1
11.9 0 1 12.1
11.7 0 1 12.1
11.2 0 1 12.1
10.3 255 0 10.3

最佳答案

多个步骤但有效。查找 y 为 255 的行的索引,直到找到下一个 1。将值保存在 idx 中。现在使用 idx 和其他两个条件(y == 1 或 y == 255)创建 new_x。完成其余部分。

# Index of rows between 255 and 1 in column y
idx = df.loc[df['y'].replace(0, np.nan).ffill() == 255, 'y'].index

# Create x_new1 and assign value of x where index is idx or y == 1 or y ==255
df.loc[idx, 'x_new1'] = df['x']
df.loc[(df['y'] == 1) | (df['y'] == 255) , 'x_new1'] = df['x']

# ffill rest of the values in x_new1
df['x_new1'] = df['x_new1'].ffill()


x y z x_new x_new1
0 12.28 1 1 12.28 12.28
1 11.99 0 1 12.28 12.28
2 11.50 0 1 12.28 12.28
3 11.20 0 1 12.28 12.28
4 11.01 0 1 12.28 12.28
5 9.74 255 0 9.74 9.74
6 13.80 0 0 13.80 13.80
7 15.20 0 0 15.20 15.20
8 17.80 0 0 17.80 17.80
9 12.10 1 1 12.10 12.10
10 11.90 0 1 12.10 12.10
11 11.70 0 1 12.10 12.10
12 11.20 0 1 12.10 12.10
13 10.30 255 0 10.30 10.30

关于python - 根据具有条件的另一列替换数据框列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55637444/

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