I have a dataframe like:
+---------------+-------+
| date | ID | count |
+--------+------+-------+
|20170101| 258 | 1003 |
|20170102| 258 | 13 |
|20170103| 258 | 1 |
|20170104| 258 | 108 |
|20170109| 258 | 25 |
| ... | ... | ... |
|20170101| 2813 | 503 |
|20170102| 2813 | 139 |
| ... | ... | ... |
|20170101| 4963 | 821 |
|20170102| 4963 | 450 |
| ... | ... | ... |
+--------+------+-------+
在我的数据框中,有一些数据是不存在的。
例如,这里编号为 258
的数据在日期区间 20170105
~ 20170108
中缺失。
缺失的数据指的是没有出现过(即计数为0)。
但是我希望也能添加计数为0的缺失数据,就像这样:
+---------------+-------+
| date | ID | count |
+--------+------+-------+
|20170101| 258 | 1003 |
|20170102| 258 | 13 |
|20170103| 258 | 1 |
|20170104| 258 | 108 |
|20170105| 258 | 0 |
|20170106| 258 | 0 |
|20170107| 258 | 0 |
|20170108| 258 | 0 |
|20170109| 258 | 25 |
| ... | ... | ... |
|20170101| 2813 | 503 |
|20170102| 2813 | 139 |
| ... | ... | ... |
|20170101| 4963 | 821 |
|20170102| 4963 | 450 |
| ... | ... | ... |
+--------+------+-------+
数据框是不可变的,所以如果我想向该数据框中添加零计数的数据,则必须创建一个新的数据框。
但即使我有一个持续时间(20170101 ~ 20171231)和ID列表,我也不能使用for loop
来操作数据框。
我应该如何创建一个新的数据框呢?
顺便说一句,我已经尝试过创建正确的数据框,然后比较两个数据框,创建另一个只包含0计数数据的数据框,最后合并“原始数据框”和“0计数数据框”。我认为这不是一个好的长期解决方案。请推荐其他高效的解决方案。