gpt4 book ai didi

python - Pandas:基于 2 列的条件按组进行行比较

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

我想根据跨 2 列的条件按组进行行比较。这种情况
是:(col1(i)-col1(j))*(col2(i)-col2(j)) <= 0 ,我们将每一行 i 与列 col1 和 col2 中的行 j 进行比较。如果条件满足 全部 组中的行比较,然后为该组设置为真,否则为假。

data = {'group':['A', 'A', 'A', 'B', 'B', 'B'], 
'col1':[1, 2, 3, 2, 3, 1], 'col2':[4, 3, 2, 2, 3, 1]}
df = pd.DataFrame(data)
df

带输出
A True
B False

最佳答案

您可以使用 shift 用于与下一行以及 进行比较 groupby+all 用于检查组中的所有项目是否都是 True :

cond=((df['col1']-df['col1'].shift(-1))*(df['col2']-df['col2'].shift(-1))<=0)&(df['group']==df['group'].shift(-1))
cond.groupby(df['group']).all()
group
A True
B False
dtype: bool

关于python - Pandas:基于 2 列的条件按组进行行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60264336/

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