猿问

根据同一行另一列中的值创建一个数据框列,然后返回一行

我有一个数据框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

但无法让它工作。


慕运维8079593
浏览 137回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答