我有一个数据框,其中包含一天中的小时作为索引,以及每小时的值。像这样:
val
09 1
10 2
12 3
13 3
14 5
17 8
我想用一天中所有小时的值来填充df,所以它将从00开始并一直到23并用0填充它的值。
我想我可以循环索引并检查值是否退出或索引,如果没有添加它,但我不知道如何循环DataFrame,我想有一个简单的方法来做我想要的任务。
答案 0 :(得分:4)
你可以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
答案 1 :(得分:1)