Python-dask / pandas如何删除/排除每个组中的最后一个观察值

时间:2019-05-01 14:51:21

标签: python pandas pandas-groupby dask

我正在使用Python dask处理大型csv面板数据集(超过10GB)。 数据框看起来像

 stock     date     time   spread  time_diff 
  VOD      01-01    9:05    0.01     0:07     
  VOD      01-01    9:12    0.03     0:52     
  VOD      01-01   10:04    0.02     0:11
  VOD      01-01   10:15    0.01     0:10     
  VOD      01-01   10:25    0.03     0:36      
  VOD      01-01   11:01    0.02     0:03
  VOD      01-01   10:04    0.02     0:09  
  VOD      01-01   10:15    0.01     0:10   
  VOD      01-01   10:25    0.03     0:39  
  VOD      01-01   11:04    0.02    22:00 
  VOD      01-02    9:04    0.02     0:05
  ...       ...     ...     ....     ...
  BAT      01-01    13:05   0.04    10:02
  BAT      01-02    9:07    0.05     0:03
  BAT      01-02    9:10    0.06     0:04

列time_diff是使用代码的两个观测值之间的时间差: df['time_diff']=df['time'].shift(-1)-df['time']

我想计算每天每只股票的时间加权价差,但是在删除/排除每个股票日的最后观察值时出现问题。即我要删除/排除这些观察结果

 stock     date     time   spread  time_diff 
  VOD      01-01    11:04   0.02    22:00 
  BAT      01-01    13:05   0.04    10:02
  ...       ...     ...     ....     ...

因为它们的时差包括第二天的变量。

这里的问题是如何在pandasdask数据框中删除/排除每个股票日的最后观察值。谢谢。

1 个答案:

答案 0 :(得分:1)

首先对列进行分组以获取“每日库存”数据。然后,使用带有负索引的tail排除最后一行。

    <div class="school">
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="my-child">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="my-child">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
      <div class="class-room">
          <div class="my-child">Child</div>
      </div>
      <div class="class-room">
          <div class="other">Child</div>
      </div>
    </div>