我想将公共时间间隔添加到仅在某些日期上出现的所有日期。这是我的数据样本。此样本数据中没有更多的时间间隔。
Data:
Row Date Hour Minute Open Close
0 2006-12-11 10 0 736.0 778.0
1 2006-12-11 10 5 775.0 775.0
2 2006-12-11 10 10 778.8 780.0
3 2006-12-11 10 30 780.0 780.0
4 2006-12-11 10 45 780.0 780.0
5 2006-12-11 10 50 781.0 799.0
6 2006-12-12 9 0 736.0 778.0
7 2006-12-12 9 5 775.0 775.0
8 2006-12-12 9 10 778.8 780.0
9 2006-12-12 10 0 780.0 780.0
10 2006-12-12 10 5 780.0 780.0
11 2006-12-12 10 10 781.0 799.0
12 2006-12-12 10 15 780.0 780.0
13 2006-12-12 10 45 780.0 780.0
14 2006-12-12 10 50 781.0 799.0
Expected Output:
Row Date Hour Minute Open Close
0 2006-12-11 9 0 null null
1 2006-12-11 9 5 null null
2 2006-12-11 9 10 null null
3 2006-12-11 10 0 736.0 778.0
4 2006-12-11 10 5 775.0 775.0
5 2006-12-11 10 10 778.8 780.0
6 2006-12-11 10 15 null null
7 2006-12-11 10 30 780.0 780.0
8 2006-12-11 10 45 780.0 780.0
9 2006-12-11 10 50 781.0 799.0
10 2006-12-12 9 0 736.0 778.0
11 2006-12-12 9 5 775.0 775.0
12 2006-12-12 9 10 778.8 780.0
12 2006-12-12 10 0 780.0 780.0
14 2006-12-12 10 5 780.0 780.0
15 2006-12-12 10 10 781.0 799.0
16 2006-12-12 10 15 780.0 780.0
17 2006-12-11 10 30 null null
18 2006-12-12 10 45 780.0 780.0
19 2006-12-12 10 50 781.0 799.0
您可以使用DataFrame.unstack
withDataFrame.stack
添加缺失的组合:
df1 = (df.set_index(['Date','Hour','Minute'])
.unstack([1,2])
.stack([1,2],dropna=False)
.reset_index())
或DataFrame.reindex
搭配MultiIndex.from_product
:
df1 = df.set_index(['Date','Hour','Minute'])
mux = pd.MultiIndex.from_product(df1.index.levels)
df1 = df1.reindex(mux).reset_index()
print (df1)
Date Hour Minute Open Close
0 2006-12-11 9 0 NaN NaN
1 2006-12-11 9 5 NaN NaN
2 2006-12-11 9 10 NaN NaN
3 2006-12-11 9 15 NaN NaN
4 2006-12-11 9 30 NaN NaN
5 2006-12-11 9 45 NaN NaN
6 2006-12-11 9 50 NaN NaN
7 2006-12-11 10 0 736.0 778.0
8 2006-12-11 10 5 775.0 775.0
9 2006-12-11 10 10 778.8 780.0
10 2006-12-11 10 15 NaN NaN
11 2006-12-11 10 30 780.0 780.0
12 2006-12-11 10 45 780.0 780.0
13 2006-12-11 10 50 781.0 799.0
14 2006-12-12 9 0 736.0 778.0
15 2006-12-12 9 5 775.0 775.0
16 2006-12-12 9 10 778.8 780.0
17 2006-12-12 9 15 NaN NaN
18 2006-12-12 9 30 NaN NaN
19 2006-12-12 9 45 NaN NaN
20 2006-12-12 9 50 NaN NaN
21 2006-12-12 10 0 780.0 780.0
22 2006-12-12 10 5 780.0 780.0
23 2006-12-12 10 10 781.0 799.0
24 2006-12-12 10 15 780.0 780.0
25 2006-12-12 10 30 NaN NaN
26 2006-12-12 10 45 780.0 780.0
27 2006-12-12 10 50 781.0 799.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句