营业日范围内的指数延长

时间:2016-02-11 15:46:26

标签: python date pandas indexing

我有一组数据点,其中一些数据点共享相同的日期索引

$row_count = sqlsrv_num_rows($stmt);

如何获得具有指定时段的工作日作为索引的熊猫数据框(此处为2016年1月)以及df中的数字与其对齐?

import pandas as pd

df = pd.DataFrame({'Date':["2016-01-08","2016-01-15", "2016-01-15", "2016-01-23"], 
'Set': ["1", "2", "3", "4"]})

df
Out[2]: 
         Date Set
0  2016-01-08   1
1  2016-01-15   2
2  2016-01-15   3
3  2016-01-23   4

1 个答案:

答案 0 :(得分:1)

由于您正在使用DatetimeIndex,我使用Series而不是DataFrame来构建您的示例:

s = pd.Series({"2016-01-08":1,      
               "2016-01-15":2,
               "2016-01-16":3,
               "2016-01-23":3})

然后我会分配日期时间索引:

s.index = pd.DatetimeIndex(s.index)

然后我只使用以下内容构建新的工作日索引:

bd = pd.bdate_range('2016-01-01', '2016-01-31')

并重新索引原始系列:

s = s.reindex(bd)

返回:

2016-01-01   NaN
2016-01-04   NaN
2016-01-05   NaN
2016-01-06   NaN
2016-01-07   NaN
2016-01-08     1
2016-01-11   NaN
2016-01-12   NaN
2016-01-13   NaN
2016-01-14   NaN
2016-01-15     2
2016-01-18   NaN
2016-01-19   NaN
2016-01-20   NaN
2016-01-21   NaN
2016-01-22   NaN
2016-01-25   NaN
2016-01-26   NaN
2016-01-27   NaN
2016-01-28   NaN
2016-01-29   NaN
Freq: B, dtype: float64

这不能解决重复索引的问题,但希望有所帮助。