Tôi có dữ liệu chuỗi thời gian theo định dạng sau, trong đó giá trị biểu thị số tiền tích lũy kể từ lần ghi trước đây. Những gì tôi muốn làm là "lan truyền" rằng số lượng tích lũy trong giai đoạn vừa qua có chứa NaN để đầu vào này:Pandas cách thành ngữ để tùy chỉnh fillna
s = pd.Series([0, 0, np.nan, np.nan, 75, np.nan, np.nan, np.nan, np.nan, 50],
pd.date_range(start="Jan 1 2016", end="Jan 10 2016", freq='D'))
2016-01-01 0.0
2016-01-02 0.0
2016-01-03 NaN
2016-01-04 NaN
2016-01-05 75.0
2016-01-06 NaN
2016-01-07 NaN
2016-01-08 NaN
2016-01-09 NaN
2016-01-10 50.0
trở thành đầu ra này:
2016-01-01 0.0
2016-01-02 0.0
2016-01-03 25.0
2016-01-04 25.0
2016-01-05 25.0
2016-01-06 10.0
2016-01-07 10.0
2016-01-08 10.0
2016-01-09 10.0
2016-01-10 10.0
Có một Pandas cách thành ngữ để làm điều này thay vì chỉ làm vòng lặp cho dữ liệu? Tôi đã thử nhiều thứ liên quan đến fillna
, dropna
, isnull
, đang thực hiện shift
để kiểm tra giá trị tiếp theo, v.v. nhưng tôi không thể xem cách ghép các phần lại với nhau.
Câu hỏi thú vị. Tôi không nghĩ rằng có một cách tích hợp, và, thật không may, bạn có thể phải kết thúc vòng lặp. –