Pandas使用零扩展DataFrame

ubof19bj  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(119)

我有下面的DataFrame,它以1.10的索引开始,并以0.05递增:

A       B       C       D       E

1.10      3       2       2       1       0
1.15      1       2       0       1       0
1.20      0       0       0       1      -1
1.25      1       1       3      -5       2
1.30     -3       4       2       6       0
...

我想用零扩展这个DataFrame,结果如下所示:

A       B       C       D       E

0         0       0       0       0       0
0.05      0       0       0       0       0
0.10      0       0       0       0       0

...

1.10      3       2       2       1       0
1.15      1       2       0       1       0
1.20      0       0       0       1      -1
1.25      1       1       3      -5       2
1.30     -3       4       2       6       0
...

所以我希望索引从0开始,然后递增0.05,直到达到最初的起始索引1.10。如何做到这一点?

vmjh9lq9

vmjh9lq91#

numpy.arange的帮助下使用reindex

step = 0.05

out = df.reindex(np.arange(0, df.index.max()+step, step), fill_value=0)

或者,如果你不想接触现有的DataFrame,只想添加缺少的先前索引(这更符合“* 索引从0开始,递增0.05,直到达到原始的开始索引1.10 *”的精神),创建顶部的DataFrame和concat

step = 0.05

out = pd.concat([pd.DataFrame(0, columns=df.columns,
                              index=np.arange(0, df.index.min(), step)),
                 df])

输出:

A  B  C  D  E
0.00  0  0  0  0  0
0.05  0  0  0  0  0
0.10  0  0  0  0  0
0.15  0  0  0  0  0
 ...
1.00  0  0  0  0  0
1.05  0  0  0  0  0
1.10  3  2  2  1  0
1.15  0  0  0  0  0
1.20  0  0  0  0  0
1.25  1  1  3 -5  2
1.30 -3  4  2  6  0

相关问题