我有一个如下所示的数据帧。最右边的列是我想要的列:
Group Value1 Value2 TargetColumn
1 1 2 0
1 2 2 1
1 3 3 1
1 4 4 1
2 6 9 0
2 7 5 0
2 8 6 0
2 9 7 0
如果给定行中Value2
的值高于前一行中Value1
的值,则返回1 else 0。我希望执行按Group
分组的ifelse操作,然后将TargetColumn
添加回原始数据帧
我通常会尝试以下方法:
import pandas as pd
import numpy as np
df = pd.DataFrame({'Group': [1,1,1,1,2,2,2,2], 'Value1': [1,2,3,4,6,7,8,9], 'Value2': [2,2,3,4,9,5,6,7]})
df['TargetColumn'] = df.groupby(['Group'])(np.where(['Value2'] > ['Value1'].shift() , 1, 0))
您可以按^{} (} ed列
>
)列Value1
按^{Value1
比较True/False
到1/0
的最后一个强制布尔掩码到整数:或者使用^{} :
相关问题 更多 >
编程相关推荐