Python-在两个日期之间向dict添加值为0的项
我知道这个问题听起来很奇怪,但我会尽力解释清楚。我有一个dict,日期作为键,int作为值。看起来是这样的: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,}
{'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
中的数据帧,这是一个专为此类任务设计的库。我也不确定你在问什么。如前所述,字典不按顺序排列;只需添加额外的键和您需要的任何值,这并不是说您可以在两个键之间插入。谢谢。这就是我在找的汉克斯。这就是我要找的