Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何识别python中的列值更改_Python_Pandas - Fatal编程技术网

如何识别python中的列值更改

如何识别python中的列值更改,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示,其中包含罢工价格和价值的数据 date time int_sp value 1 20180903 09:16 11700 283.90 315 20180903 14:31 11700 273.85 316 20180903 14:32 11700 274.05 317 20180903 14:33 11600

我有一个熊猫数据框,如下所示,其中包含罢工价格和价值的数据

    date        time    int_sp          value

1   20180903    09:16   11700           283.90
315 20180903    14:31   11700           273.85
316 20180903    14:32   11700           274.05
317 20180903    14:33   11600           295.35
390 20180904    09:31   11600           284.5
391 20180904    09:32   11500           304.15
403 20180904    09:44   11500           301.6
404 20180904    09:45   11600           282.4
405 20180904    09:46   11500           300.35
406 20180904    09:47   11500           300.35
407 20180904    09:48   11500           300.95
408 20180904    09:49   11500           301.3
409 20180904    09:50   11600           280.4
474 20180904    10:55   11600           279.25
475 20180904    10:56   11500           300.15
我的第一笔交易应该总是在第一张唱片上卖出。现在,只要执行价(int_sp)发生变化,我就需要买入卖出的头寸,并通过以新的执行价卖出来创建新的交易

这是我的预期输出

sell_date   sell_time   buy_date    buy_time    int_sp      sell_price      buy_price
20180903    09:16       20180903    14:32       11700       283.90          274.05          
20180903    14:33       20180904    09:31       11600       295.35          284.5
20180904    09:32       20180904    09:44       11500       304.15          301.6
20180904    09:45       20180904    09:45       11600       282.4           282.4
20180904    09:46       20180904    09:49       11500       300.35          301.3   
20180904    09:50       20180904    10:55       11600       280.4           279.25
20180904    10:56       TBD         TBD         11500       300.15          TBD
我对熊猫很陌生,想不出如何做到这一点。 有人能帮我吗?

IIUC,用于获取销售信息

ndf = df.loc[df['int_sp'].diff().ne(0)].add_prefix('sell_').reset_index().copy()
现在,用面具

mask = df['int_sp'].diff().shift(-1).fillna(0).ne(0)
此掩码过滤滞后值,即与购买相关的值。那就分配吧

ndf.loc[:, 'buy_value'] = df.loc[mask, 'value'].reset_index(drop=True)
ndf.loc[:, 'buy_date'] = df.loc[mask, 'date'].reset_index(drop=True)
ndf.loc[:, 'buy_time'] = df.loc[mask, 'time'].reset_index(drop=True)


        sell_date   sell_time   sell_int_sp sell_value  buy_value   buy_date    buy_time
index                           
1       20180903    09:16       11700       283.90      274.05      20180903.0  14:32
317     20180903    14:33       11600       295.35      284.50      20180904.0  09:31
391     20180904    09:32       11500       304.15      301.60      20180904.0  09:44
404     20180904    09:45       11600       282.40      282.40      20180904.0  09:45
405     20180904    09:46       11500       300.35      301.30      20180904.0  09:49
409     20180904    09:50       11600       280.40      279.25      20180904.0  10:55
475     20180904    10:56       11500       300.15      NaN         NaN         NaN

在你的结果中,
buy_time
列在哪里?@RafaelC,好好工作吧。谢谢你,伙计!非常感谢你的时间和努力。