【发布时间】:2020-05-08 03:40:59
【问题描述】:
我有一个时间序列数据框,其中填充了 0 和不同数量的列,我想从第一行和第一列开始以 100 填充对角线中的值。我可以使用下面问题中提出的解决方案,但在填充最后一列的值后它会停止。 Set values on the diagonal of pandas.DataFrame
如何让它在所有行上重复?
这就是我的数据框的样子:
A B
2020-05-02 23:00:00+00:00 0.0 0.0
2020-05-03 00:00:00+00:00 0.0 0.0
2020-05-03 01:00:00+00:00 0.0 0.0
2020-05-03 02:00:00+00:00 0.0 0.0
2020-05-03 03:00:00+00:00 0.0 0.0
但正如您所见,使用 Numpy fill_diagonal 并不能完成这项工作。
import numpy as np
np.fill_diagonal(df.values, 0)
A B
2020-05-02 23:00:00+00:00 100.0 0.0
2020-05-03 00:00:00+00:00 0.0 100.0
2020-05-03 01:00:00+00:00 0.0 0.0
2020-05-03 02:00:00+00:00 0.0 0.0
2020-05-03 03:00:00+00:00 0.0 0.0
当有 2 列时,我希望是这样的:
A B
2020-05-02 23:00:00+00:00 100.0 0.0
2020-05-03 00:00:00+00:00 0.0 100.0
2020-05-03 01:00:00+00:00 100.0 0.0
2020-05-03 02:00:00+00:00 0.0 100.0
2020-05-03 03:00:00+00:00 100.0 0.0
【问题讨论】: