熊猫,从日期列创建缺少的日期字典

时间:2020-11-10 12:06:22

标签: python pandas date

我有一个DataFrame,其中包含去年的数据,但dates列中缺少一些日期

Procfile

我想创建一个日期之间的间隔的字典,因此键将是开始日期和值作为结束日期,例如:

web: npm client
server: npm start

所以我创建了一个列来指示以下内容是否存在差距:

         date
0      2019-10-21
1      2019-10-29
2      2019-11-01
3      2019-11-04
4      2019-11-05

输出以下内容:

dates_gaps = {2019-10-21:2019-10-29, 2019-10-29:2019-11-01,2019-11-01:2019-11-04 ...}

我在从这里前进时遇到了麻烦

2 个答案:

答案 0 :(得分:0)

只需将这些日期转换为datetime,然后找出两个相邻日期之间的差额即可。

a = pd.to_datetime('1900-01-01', format='%Y-%m-%d')
b = pd.to_datetime('1900-02-01', format='%Y-%m-%d')
c = a-b
c.days  # -31

答案 1 :(得分:0)

您可以添加条件以比较缺少的值,将date列转换为Series.dt.strftime的字符串,最后使用zip创建字典:

diff = df['date'].diff()
s = df.loc[(diff.dt.days > 1) | diff.isna(), 'date'].dt.strftime('%Y-%m-%d')
print (s)
0    2019-10-21
1    2019-10-29
2    2019-11-01
3    2019-11-04
Name: date, dtype: object

d = dict(zip(s, s.shift(-1)[:-1]))
print (d)
{'2019-10-21': '2019-10-29', '2019-10-29': '2019-11-01', '2019-11-01': '2019-11-04'}