【发布时间】:2021-08-14 05:15:08
【问题描述】:
在R中,它有fill_gaps可以填充时间序列以及下面的水果等键。我想知道python中是否有类似的东西。
library(tribble)
harvest <- tsibble(
year = c(2010, 2011, 2013, 2011, 2012, 2014),
fruit = rep(c("kiwi", "cherry"), each = 3),
kilo = sample(1:10, size = 6),
key = fruit, index = year
)
# gaps as default `NA`
fill_gaps(harvest, .full = TRUE)
year fruit kilo
<dbl> <chr> <int>
1 2010 cherry NA
2 2011 cherry 5
3 2012 cherry 7
4 2013 cherry NA
5 2014 cherry 8
6 2010 kiwi 9
7 2011 kiwi 10
8 2012 kiwi NA
9 2013 kiwi 4
10 2014 kiwi NA
python代码如下所示,我有3年的数据和1000种不同的产品。
import pandas as pd
from datetime import datetime
db = pd.DataFrame(
[[datetime(2019, 2, 7), 'a' , 1,2,3],
[datetime(2019, 2, 7), 'b', 2, 3, 3],
[datetime(2019, 2, 8), 'a', 2, 3, 3],
[datetime(2019, 2, 9), 'a', 12, 13, 3],
[datetime(2019, 2, 9), 'b', 10, 2, 3]
]
)
db.columns = ['date', 'product', 'x','y','z']
db
date product x y z
0 2019-02-07 a 1 2 3
1 2019-02-07 b 2 3 3
2 2019-02-08 a 2 3 3
3 2019-02-09 a 12 13 3
4 2019-02-09 b 10 2 3
预期结果是:
date product x y z
0 2019-02-07 a 1 2 3
1 2019-02-07 b 2 3 3
2 2019-02-08 a 2 3 3
3 2019-02-08 b 0 0 0
4 2019-02-09 a 12 13 3
5 2019-02-09 b 10 2 3
【问题讨论】:
-
提供示例 pandas 数据框,以及预期的输出。如果您也提供源代码会很棒
标签: python pandas time-series