我有一个带有三列Dataframestore, hour, count。我面临的问题是某些hours缺少某些stores,我希望它们成为0

这就是dataframe的样子

#     store_id   hour   count
# 0         13      0      56
# 1         13      1      78
# 2         13      2      53
# 3         23     13      14
# 4         23     14      13


如您所见,ID为13的store在3-23小时内没有值,与商店23类似,在其他许多小时中也没有值。

我试图通过创建具有两列idcount的时态数据框并执行right outer join来解决此问题,但是没有用。

最佳答案

如果拼写错误且每个组的hour中没有重复项,则解决方案为reindexMultiIndex.from_product

df = df.set_index(['store_id','hour'])
mux = pd.MultiIndex.from_product([df.index.levels[0], range(23)], names=df.index.names)
df = df.reindex(mux, fill_value=0).reset_index()




print (df)
    store_id  hour  count
0         13     0     56
1         13     1     78
2         13     2     53
3         13     3      0
4         13     4      0
5         13     5      0
6         13     6      0
7         13     7      0
8         13     8      0
9         13     9      0
10        13    10      0
11        13    11      0
12        13    12      0
13        13    13      0
14        13    14      0
15        13    15      0
16        13    16      0
17        13    17      0
18        13    18      0
19        13    19      0
20        13    20      0
21        13    21      0
22        13    22      0
23        23     0      0
24        23     1      0
25        23     2      0
26        23     3      0
27        23     4      0
28        23     5      0
29        23     6      0
30        23     7      0
31        23     8      0
32        23     9      0
33        23    10      0
34        23    11      0
35        23    12      0
36        23    13     14
37        23    14      0
38        23    15      0
39        23    16      0
40        23    17      0
41        23    18      0
42        23    19      0
43        23    20      0
44        23    21      0
45        23    22      0

关于python - 如何按列将值添加到数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45151951/

10-12 06:22