Skip to main content
 首页 » 编程设计

python之将默认值添加到数据框

2025年05月04日25exmyth

我有一个数据框,其中有一天中的几个小时作为索引,每个小时都有一个值。像这样:

    val 
09   1 
10   2 
12   3 
13   3 
14   5 
17   8 

我想用一天中所有时间的值填充 df,因此它将从 00 开始一直到 23,然后用 0 填充它的值。

我想我可以在索引上循环并检查值是否存在或索引是否存在,如果不存在则添加它,但我不知道如何循环 DataFrame,我想有一种简单的方法可以完成我的任务想要。

请您参考如下方法:

您可以 reindex你的 df,这会将 NaN 放在行不存在的地方,但你可以提供 fill_value=0 来替换这些:

In [48]: 
df.reindex(np.arange(24), fill_value=0) 
 
Out[48]: 
    val 
0     0 
1     0 
2     0 
3     0 
4     0 
5     0 
6     0 
7     0 
8     0 
9     1 
10    2 
11    0 
12    3 
13    3 
14    5 
15    0 
16    0 
17    8 
18    0 
19    0 
20    0 
21    0 
22    0 
23    0 

如果您的索引是string dtype,您需要先转换为int:

df.index = df.index.astype(int) 

然后执行上述操作并向后转换并使用 str.zfill 向左填充所需数量的零:

In [49]: 
df = df.reindex(np.arange(24), fill_value=0) 
df.index = df.index.astype(str).str.zfill(2) 
df 
 
Out[49]: 
    val 
00    0 
01    0 
02    0 
03    0 
04    0 
05    0 
06    0 
07    0 
08    0 
09    1 
10    2 
11    0 
12    3 
13    3 
14    5 
15    0 
16    0 
17    8 
18    0 
19    0 
20    0 
21    0 
22    0 
23    0