Python-在两个日期之间向dict添加值为0的项

Python-在两个日期之间向dict添加值为0的项,python,Python,我知道这个问题听起来很奇怪,但我会尽力解释清楚。我有一个dict,日期作为键,int作为值。看起来是这样的: {'22-07-2018,': 1, '14-07-2018,': 1, '12-07-2018,': 1, '4-03-2018,': 1, '20-02-2018,': 1, '15-02-2018,': 2, '25-11-2017,': 1, '11-11-2017,': 2, '26-10-2017,': 2, '21-10-2017,': 6,}

我知道这个问题听起来很奇怪,但我会尽力解释清楚。我有一个dict,日期作为键,int作为值。看起来是这样的:

{'22-07-2018,': 1,
 '14-07-2018,': 1,  
 '12-07-2018,': 1,
 '4-03-2018,':  1,
 '20-02-2018,': 1,
 '15-02-2018,': 2,  
 '25-11-2017,': 1,
 '11-11-2017,': 2,
 '26-10-2017,': 2,
 '21-10-2017,': 6,}
{'22-07-2018,': 1,
 '21-07-2018,': 0,
 '20-07-2018,': 0,
 '19-07-2018,': 0,
 '18-07-2018,': 0,
  ...
 '14-07-2018,': 1,
 '13-07-2018,': 0,
 '12-07-2018,': 0,
 '11-07-2018,': 0,
 '10-07-2018,': 0,
 ...  
 '4-03-2018,':  1,
 ...}
现在,我需要在所有这些日期之间添加0项,如下所示:

{'22-07-2018,': 1,
 '14-07-2018,': 1,  
 '12-07-2018,': 1,
 '4-03-2018,':  1,
 '20-02-2018,': 1,
 '15-02-2018,': 2,  
 '25-11-2017,': 1,
 '11-11-2017,': 2,
 '26-10-2017,': 2,
 '21-10-2017,': 6,}
{'22-07-2018,': 1,
 '21-07-2018,': 0,
 '20-07-2018,': 0,
 '19-07-2018,': 0,
 '18-07-2018,': 0,
  ...
 '14-07-2018,': 1,
 '13-07-2018,': 0,
 '12-07-2018,': 0,
 '11-07-2018,': 0,
 '10-07-2018,': 0,
 ...  
 '4-03-2018,':  1,
 ...}

对我来说,把这条命令整理好真的很重要


有人知道如何做到这一点吗?

也许可以使用Pandas来做类似的事情(假设字典键中的逗号有误)

从您的示例预期结果中不清楚为什么只有某些日期的填充值为零

d = {'22-07-2018': 1, 
     '14-07-2018': 1, 
     '12-07-2018': 1, 
     '4-03-2018': 1, 
     '20-02-2018': 1, 
     '15-02-2018': 2, 
     '19-12-2017': 1, 
     '25-11-2017': 1, 
     '11-11-2017': 2, 
     '26-10-2017': 2, 
     '21-10-2017': 6}

s = pd.Series(d)
s.index = pd.to_datetime(s.index)
s = s.reindex(pd.DatetimeIndex(start=s.index.min(), end=s.index.max(), freq='D')).fillna(0)

>>> s
2017-10-21    6
2017-10-22    0
2017-10-23    0
2017-10-24    0
2017-10-25    0
2017-10-26    2
...
2018-12-06    0
2018-12-07    1
Freq: D, dtype: float64

也许可以使用Pandas来做类似的事情(假设字典键中的逗号有误)

从您的示例预期结果中不清楚为什么只有某些日期的填充值为零

d = {'22-07-2018': 1, 
     '14-07-2018': 1, 
     '12-07-2018': 1, 
     '4-03-2018': 1, 
     '20-02-2018': 1, 
     '15-02-2018': 2, 
     '19-12-2017': 1, 
     '25-11-2017': 1, 
     '11-11-2017': 2, 
     '26-10-2017': 2, 
     '21-10-2017': 6}

s = pd.Series(d)
s.index = pd.to_datetime(s.index)
s = s.reindex(pd.DatetimeIndex(start=s.index.min(), end=s.index.max(), freq='D')).fillna(0)

>>> s
2017-10-21    6
2017-10-22    0
2017-10-23    0
2017-10-24    0
2017-10-25    0
2017-10-26    2
...
2018-12-06    0
2018-12-07    1
Freq: D, dtype: float64

“对我来说,把这本词典整理好真的很重要。”你是说整理好了吗?是的。我需要它。要么使用
OrderedDict
要么使用Python 3.6+所有其他版本的Python dict都没有顺序。那么
dict
的结构就不合适了,因为它没有顺序。如果你只是想要结果,我建议你使用
pandas
中的数据帧,这是一个专为此类任务设计的库。我也不确定你在问什么。如前所述,字典不按顺序排列;只需添加额外的键,无论您需要什么值,这并不是说您可以在两个键之间插入任何内容。“对我来说,排序这条命令非常重要。”排序的意思是按顺序排列?是的。我需要它。要么使用
OrderedDict
要么使用Python 3.6+所有其他版本的Python dict都没有顺序。那么
dict
的结构就不合适了,因为它没有顺序。如果你只是想要结果,我建议你使用
pandas
中的数据帧,这是一个专为此类任务设计的库。我也不确定你在问什么。如前所述,字典不按顺序排列;只需添加额外的键和您需要的任何值,这并不是说您可以在两个键之间插入。谢谢。这就是我在找的汉克斯。这就是我要找的