1
我想在Pandas中的DataFrame的開始處將最後的NaN置零。我的數據框對象有時間戳在如何使用時間戳索引找到DataFrame中的前一行?
實例數據
如果我有這樣的數據:
In [228]: my_df
Out[228]:
blah
1990-01-01 NaN
1990-01-02 NaN
1990-01-03 NaN
1990-01-04 NaN
1990-01-05 NaN
1990-01-06 5
1990-01-07 6
1990-01-08 7
1990-01-09 NaN
1990-01-10 9
[10 rows x 1 columns]
我想(改變上月5日的值)以下內容:
blah
1990-01-01 NaN
1990-01-02 NaN
1990-01-03 NaN
1990-01-04 NaN
1990-01-05 0
1990-01-06 5
1990-01-07 6
1990-01-08 7
1990-01-09 NaN
1990-01-10 9
[10 rows x 1 columns]
我已經試過
我在上次的NaN後得到的指數:
In [229]: ts = my_df['blah'].first_valid_index()
In [230]: ts
Out[230]: Timestamp('1990-01-06 00:00:00', tz=None)
我發現這種醜陋的做法:
my_df['blah'][:ts][-2] = 0
但是,這將引發IndexError
如果我的數據幀沒有任何的NaN在開始時。什麼更好的解決方案看起來像(大概不用寫一個for循環)?