Pandas中日期的增量重复计数

时间:2016-01-13 14:09:47

标签: python datetime pandas duplicates dataframe

我有以下格式的数据框:

 day         value  
 1/1/15      aa
 2/1/15      bb
 3/1/15      bb
 3/1/15      cc
 4/1/15      ee
 4/1/15      ff
 4/1/15      aa

我想先:分组到第一天'然后计算'值'中的唯一值每隔一天递增计算一次计数。

结果如下:

 day         value  
 1/1/15      1
 2/1/15      2
 3/1/15      3
 4/1/15      5

理想情况下,解决方案将放在熊猫中。我不知道从哪里开始,我唯一的想法就是按群计算,然后使用defaultdict总结,但是如何按照日期的顺序递增呢?

谢谢! 文森佐

1 个答案:

答案 0 :(得分:0)

以下作品:

values = [l+l for l in ascii_lowercase[:8]
dates = pd.date_range(date(2016, 1, 1), date(2016, 3, 30))
df = pd.DataFrame(data=np.random.choice(values, 500), index=np.random.choice(dates, 500), columns=['value'])
df.sort_index().head(25)

           value
2016-01-01    bb
2016-01-01    dd
2016-01-01    ff
2016-01-02    hh
2016-01-02    aa
2016-01-02    ee
2016-01-02    aa
2016-01-02    gg
2016-01-02    hh
2016-01-02    aa
2016-01-03    cc
2016-01-03    ee

print(df.groupby(level=0)['value'].apply(lambda x: x.nunique()).cumsum())

2016-01-01      3
2016-01-02      7
2016-01-03      9
2016-01-04     13
2016-01-05     18
2016-01-06     20