2
我有一個數據框(或numpy的二維數組,如果你願意),像這樣:更好的方法來轉發用計算填充DataFrame /數組?
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
。
我知道你不會失望!這是一個很好的黑客功能。我在'numpy'中有3個實現,但我從來沒有想過使用'power' ... – Kartik
其實,因爲我問了我最簡單的模型,並且單獨看它,'power'是最自然的選擇。對於其他一些更復雜的問題,常數不是那麼簡單,它實際上是模型係數,可能不同。我會在明天再玩一次... – Kartik
我不能保證我有時間看它,但我總是歡迎挑戰。我會嘗試尋找另一種模式。 – piRSquared