我有一个DataFrame(或者numpy 2D数组,如果你愿意的话),就像这样:
0 1 2 3 4 5 6 7 8 9
tstamp
2016-09-19 00:00:00 29.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2016-09-19 00:01:00 29.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2016-09-19 00:02:00 29.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2016-09-19 00:03:00 29.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2016-09-19 00:04:00 29.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
我需要填写所有NaN
:
for i in range(1, 10):
df.loc[:, i] = const + df.loc[:, i-1].multiply(const)
const
有些不变。现在,显而易见的第一件事就是使用切片:
df.loc[:, 1:] = const + df.loc[:, :-1].multiply(const)
但请注意,下一列的值取决于前一列的计算值。有没有办法在循环外执行此操作?
Ps。虽然这完全没必要,但是:
df.loc[row_slice, col_slice].values
将返回切片框的numpy NDArray
。
答案 0 :(得分:3)