【问题标题】:How to count the number of older time stamps for each row (id) in Python如何计算Python中每行(id)的旧时间戳数
【发布时间】:2019-12-17 09:09:49
【问题描述】:

我正在尝试通过根据日期计算每个唯一 ID 的历史事件数来创建聚合

ID   Date 
1    1/1/2010
1    1/1/2011
1    1/1/2012
2    1/1/2010
2    1/1/2011

期望的输出是:

ID   Date      Historical_Incidents
1    1/1/2010  0
1    1/1/2011  1
1    1/1/2012  2
2    1/1/2010  0
2    1/1/2011  1

我首先尝试按 ID 分组,计算唯一日期的数量,然后与原始数据框合并:

data4.groupby('Id')['Date'].nunique()

我正在获取每个 ID 的“日期”数量,但我正在尝试获取每个 ID 之前出现的“日期”数量

【问题讨论】:

    标签: python pandas aggregate


    【解决方案1】:

    制作相似但不相同的数据:

    >>> df = pd.DataFrame([[2009, 1], [2010, 1], [2011, 1], [2009, 2], [2010, 2]], columns=list('AB'))
    >>> df
          A  B
    0  2009  1
    1  2010  1
    2  2011  1
    3  2009  2
    4  2010  2
    

    假设它们都按日期排序(这里是A 列):

    >>> df['count'] = df.groupby('B').cumcount()
    >>> df
          A  B  count
    0  2009  1      0
    1  2010  1      1
    2  2011  1      2
    3  2009  2      0
    4  2010  2      1
    

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 2022-10-23
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 2017-12-07
      • 2015-11-04
      • 2020-03-30
      • 1970-01-01
      相关资源
      最近更新 更多