【问题标题】:How to run a conditional query that selects for the first occurrence only in Pandas?如何运行仅在 Pandas 中选择第一次出现的条件查询?
【发布时间】:2016-03-18 18:24:45
【问题描述】:

我的数据是多天的盘中股价数据。这是一个简化版:

            Close   dif                                                 
2015-01-02  2035.25 -1.30                       
2015-01-02  2015.25 -3.18   
2015-01-05  2035.25 -1.35                       
2015-01-05  2015.25 -4.18                   
2015-01-06  1988.00 -2.30                       
2015-01-06  1988.00 -2.32

我在 pandas 中使用以下形式的条件指令:

data['Test'] = ""
data.loc[(data['dif'] < 0) & (data['dif'] > -100), 'Test'] = data['Close']

我遇到了障碍,因为我只关心第一次每天满足条件的时间。我怎样才能做到这一点?。

这将是输出:

            Close   dif    Test                                             
2015-01-02  2035.25 -1.30  2035.25                      
2015-01-02  2015.25 -3.18   
2015-01-05  2045.25 -1.35  2045.25                  
2015-01-05  2015.25 -4.18                   
2015-01-06  1989.00 -2.30  1989.00                  
2015-01-06  1988.00 -2.32

谢谢

【问题讨论】:

    标签: python python-2.7 pandas dataframe


    【解决方案1】:

    要选择符合您条件的每个每日组的第一项:

    data[(data['dif'] < 0) & (data['dif'] > -100)].groupby('date')['Close', 'dif'].first()
    

    屈服:

              Close   dif
    date                 
    1/2/15  2035.25 -1.30
    1/5/15  2035.25 -1.35
    1/6/15  1988.00 -2.30
    

    【讨论】:

      猜你喜欢
      • 2021-07-25
      • 2017-04-02
      • 2011-03-09
      • 2013-04-08
      • 1970-01-01
      • 2012-01-17
      • 2021-10-01
      • 2023-01-08
      • 1970-01-01
      相关资源
      最近更新 更多