我有一个数据框df,头部看起来像:
BB DATE PX
0 1333 JP 2014-03-04 471300.0
1 1333 JP 2014-04-04 132900.0
2 1333 JP 2014-04-07 150400.0
3 1333 JP 2014-04-13 191900.0
4 2345 JP 2014-04-14 218900.0
我想创建一个名为 say 的新列FLAG,该列使用 2 个条件设置 1.查看命名的列,BB并为每一行获取当前值,然后回顾前一天并比较这些值。如果值相同
和
如果当前DATE日期和昨天日期之间的绝对差异大于 3
然后设置FLAG= 1 否则设置FLAG=0
因此在这个例子中,新的 FLAG 列看起来像
BB DATE PX FLAG
0 1333 JP 2014-03-04 471300.0 0
1 1333 JP 2014-04-04 132900.0 1
2 1333 JP 2014-04-07 150400.0 0
3 1333 JP 2014-04-13 191900.0 1
4 2345 JP 2014-04-14 218900.0 0
当 index 等于 1 时,您可以看到该BB行上的值和前一行的值相同,但DATE两行之间的绝对差值大于 3。 index = 3 时也是如此。
我试过了:
if df.BB.shift(1) = df.BB.shift(0) & abs(df.DATE.shift(1) - df.DATE.shift(0)) >3 :
df['FLAG'] = 1
else:
df['FLAG'] = 0
但无法让它工作。
相关分类