Giả sử tôi có DataFrame với một số NaN
s:
>>> import pandas as pd
>>> df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
>>> df
0 1 2
0 1 2 3
1 4 NaN NaN
2 NaN NaN 9
Những gì tôi cần làm là thay thế mọi thứ NaN
bằng NaN
giá trị không đầu tiên trong cùng một cột phía trên nó. Giả định rằng hàng đầu tiên sẽ không bao giờ chứa a NaN
. Vì vậy, với ví dụ trước, kết quả sẽ là
0 1 2
0 1 2 3
1 4 2 3
2 4 2 9
Tôi chỉ có thể lặp qua toàn bộ từng cột DataFrame, từng yếu tố và đặt các giá trị trực tiếp, nhưng liệu có cách nào dễ dàng (tối ưu hóa một vòng lặp) để đạt được điều này không?