gpt4 book ai didi

python - 使用 pd.apply() 和 shift 来比较相邻行

转载 作者:行者123 更新时间:2023-11-30 22:54:09 25 4
gpt4 key购买 nike

我想比较两个单独列上的相邻行。我有一个包含两列的 dataframe:LetterBoolean_Value。我想创建一个新列 New Col,其中值为 TrueFalse

要使值为 true:

下一行(较高的索引)必须共享相同的 Letter 值,并且下一行的 Boolean_Value 必须为 True。

如果值为 false:

所有其他场景

我的代码产生所有错误值:

import pandas as pd
df = pd.DataFrame(data=[['A', False],
['A', True],
['B', False],
['B', False],
['B', True]]
,columns=['Letter', 'Boolean_Value'])

def my_test2(row):
try:
if row['Letter'].shift(1) == row['Letter'] and row['Boolean_Value'].shift(1) == True:
return True
else:
return False
except:
return False

df['New Col'] = df.apply(my_test2, axis=1)

print df

产量:

  Letter Boolean_Value New Col
0 A False False
1 A True False
2 B False False
3 B False False
4 B True False

期望的输出:

  Letter Boolean_Value New Col
0 A False True
1 A True False
2 B False False
3 B False True
4 B True False

最佳答案

你可以:

df['new_col'] = (df.Letter == df.Letter.shift(-1)) & df.Boolean_Value.shift(-1)

Letter Boolean_Value new_col
0 A False True
1 A True False
2 B False False
3 B False True
4 B True False

关于python - 使用 pd.apply() 和 shift 来比较相邻行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37926571/

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