【问题标题】:Getting column with days from first observed - trading data获取第一次观察到的天数列 - 交易数据
【发布时间】:2022-08-02 22:29:29
【问题描述】:

所以我有一些交易数据,最终我想找到 1 周回报 1 个月、3 个月等等。要做到这一点,我认为如果我能得到一个列,每个资产都存在天数,那是最简单的。

数据简化为:

Id Date Price
101 2014-09-14 0.7
101 2014-09-15 0.8
101 2014-09-16 0.9
101 2014-09-17 0.8
103 2014-10-03 1,6
103 2014-10-04 1.7
103 2014-10-05 1.7
103 2014-10-07 1.9
107 2015-10-17 24
107 2015-10-18 21
107 2015-10-23 22

然后我想要一个名为“列出的天数”的新列

Id Date Price Days listed
101 2014-09-14 0.7 1
101 2014-09-15 0.8 2
101 2014-09-16 0.9 3
101 2014-09-17 0.8 4
103 2014-10-03 1,6 1
103 2014-10-04 1.7 2
103 2014-10-05 1.7 3
103 2014-10-07 1.9 5
107 2015-10-17 24 1
107 2015-10-18 21 2
107 2015-10-23 22 7

我认为它需要按 id 分组,但除此之外我没有想法。希望可以有人帮帮我 最好的问候困惑的学生

    标签: python pandas date group-by trading


    【解决方案1】:
    df['Date']=pd.to_datetime(df['Date'])
    df['DaysListed']=(df['Date'] - df.groupby('Id')['Date'].transform('min')).dt.days+1
    df
    
        Id  Date    Price   DaysListed
    0   101     2014-09-14  0.7     1
    1   101     2014-09-15  0.8     2
    2   101     2014-09-16  0.9     3
    3   101     2014-09-17  0.8     4
    4   103     2014-10-03  1,6     1
    5   103     2014-10-04  1.7     2
    6   103     2014-10-05  1.7     3
    7   103     2014-10-07  1.9     5
    8   107     2015-10-17  24  1
    9   107     2015-10-18  21  2
    10  107     2015-10-23  22  7
    

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 1970-01-01
      • 2016-08-01
      • 2019-10-03
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多