我有一個 DataFrame,它是 Python 上更廣泛腳本的一部分,具有以下特征:
- 指數
dtype='datetime64[ns]', length=365, freq='D' - 不同引數的每日值
- DOY 1 的默認值
- 我之前為某些特定日期計算的一對值。
迄今為止,資料幀結構是這樣的:
col1 col2 col3 col4 Condition value to calculate
2018-01-01 5.0 0.853232 0.992774 0.65377 0.0 0.65429
2018-01-02 0.4 0.004652 0.992774 0.65377 0.0 NaN
2018-01-03 0.0 0.000000 0.992774 0.65377 0.0 NaN
2018-01-04 0.0 0.000000 0.992774 0.65377 1.0 0.33456
2018-01-05 0.4 0.004652 0.992774 0.65377 0.0 NaN
... ... ... ... ... ...
“條件”列用于對最后一列中特定時間的值進行屬性化
最后一列中的缺失值應使用第 1 至第 4 列的資料計算,使用來自第 1 至第 4 列的前一個 DOY 值以及我必須計算的值的同一列。
此外,如果某個值已存在于特定 DOY,則應重置公式以使用先前添加的值開始計算。
我不確定如何將其放入回圈中以執行操作,或者是否有其他替代方法可以解決我正在處理的這部分代碼。
uj5u.com熱心網友回復:
看起來你需要這樣的東西:def compute_value(previous_row, row):
for index, row in df.iterrows():
if index>0:
previous_row = df.iloc[index-1]
row['value to calculate'] = previous_row['col1'] * previous_row['col2'] - previous_row['col3'] * previous_row['col4']
這是您迭代的方式,但不確定是否完全理解了條件并且不確定您的意思,如果我可以擴展,請告訴我
此外,如果某個值已存在于特定 DOY,則應重置公式以使用先前添加的值開始計算。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/369957.html
上一篇:(更新)處理檔案,檢查是否存在
