gpt4 book ai didi

python - 迭代 df 以比较值

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

我有一个大数据框,我需要将第一列中的第一个条目与第二列中的第一个条目进行比较。然后是第一列中的第一个条目到第三列中的第一个条目,等等。基本上我想看看这两个值是否>0,然后做一些事情。有没有办法使用 Pandas 数据框来做到这一点?

0  22 0 44 5 6
1 12 3 56 0 0
2 0 0 1 0 0
3 1 2 0 0 0

所以我想看看 22 和 0 是否都 >0。那么如果 22 和 44 都 >0。那么如果 22 和 5 都 > 0。那么如果 22 和 6 都 >0。那么如果 12 和 3 都 > 0。那么如果 12 和 56 都 >0。 ...等等。如果一对的两个元素都 >0,那么我的代码将执行其他操作。

我假设有一种简单的方法可以遍历我刚刚缺少的行和列。

最佳答案

使用DataFrame.rolling per axis=1 - 列,按条件比较,并通过 any 测试两者中是否至少有一个 True 或在必要时测试两者是否为 True使用将 any 更改为 all

第一列填充了NaN,所以(我希望)是必要的DataFrame.shift对于最后一列 NaN,将它们替换为 DataFrame.fillna并转换为 boolean:

print (df)
a b c d e
0 22 0 44 5 6
1 12 3 56 0 0
2 0 0 1 0 0
3 1 2 0 0 0


def f(x):
print (x)
mask = x > 0
print (mask)
return mask.any()


df = df.rolling(2, axis=1).apply(f, raw=True).shift(-1, axis=1).fillna(0).astype(bool)
print (df)
a b c d e
0 True True True True False
1 True True True False False
2 False True True False False
3 True True False False False

关于python - 迭代 df 以比较值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56060430/

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