gpt4 book ai didi

python - 为每个列对组合查找以前的非零对,并为使用 python 的那些创建单独的列

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:40 24 4
gpt4 key购买 nike

我有一个这样的数据框:

A     B
1 1
0 0
2 3
0 0
0 0
5 4
0 3
0 0

我想再添加两列,条件如下:对于每个 A 和 B 对,先前的非零对值将被添加到其他两列中,但这是第一次在两列中都为零,

例如输出将是这样的:

A     B    C    D
1 1 0 0
0 0 1 1
2 3 1 1
0 0 2 3
0 0 2 3
5 4 2 3
0 3 5 4
0 0 0 3

我可以使用循环来完成,但我希望以大多数 pythonic 方式执行时间最少。

最佳答案

我相信一种方法是移动AB,将其用作您的CD列,用nan替换都是0的行,前向填充,最后把最上面的NaN替换为0:

df[['C','D']] = df[['A','B']].shift()

df.loc[(df[['C','D']] == 0).all(1), ['C','D']] = np.nan

df.ffill().fillna(0).astype(int)

A B C D
0 1 1 0 0
1 0 0 1 1
2 2 3 1 1
3 0 0 2 3
4 0 0 2 3
5 5 4 2 3
6 0 3 5 4
7 0 0 0 3

关于python - 为每个列对组合查找以前的非零对,并为使用 python 的那些创建单独的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560573/

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