Tôi có hàng trăm đối tượng thời gian với 100000 mục nhập trong mỗi. Một số phần trăm của các mục nhập dữ liệu bị thiếu (NaN). Điều quan trọng là ứng dụng của tôi là những ứng dụng đơn lẻ, phân tán NaN hoặc chuỗi dài NaN.Pandas: chiều dài của các lỗ NaN
Vì vậy, tôi muốn có một hàm cho tôi độ dài của mỗi chuỗi NaN liền nhau. Tôi có thể làm
myseries.isnull()
để nhận một chuỗi bool. Và tôi có thể làm di chuyển trung bình hoặc di chuyển trung bình để có được một ý tưởng về kích thước của các lỗ dữ liệu. Tuy nhiên, sẽ tốt hơn nếu có một cách hiệu quả cách nhận danh sách các lỗ hổng cho một chuỗi.
Ie, nó sẽ được tốt đẹp để có một myfunc
để
a = pdSeries([1, 2, 3, np.nan, 4, np.nan, np.nan, np.nan, 5, np.nan, np.nan])
myfunc(a.isnull())
==> Series([1, 3, 2])
(vì có 1, 3 và 2 Nans, tương ứng)
Từ đó, tôi có thể làm cho biểu đồ có độ dài lỗ và của số and
hoặc or
trong tổng số nhiều chuỗi (có thể thay thế cho mỗi chuỗi) và những thứ đẹp khác.
Tôi cũng muốn lấy ý tưởng về các cách khác để định lượng "độ lồi" của các lỗ dữ liệu.
'Series ([len (danh sách (g)) cho k, g trong groupby (a.isnull()) nếu k]) 'có lẽ là hơi hiệu quả hơn. – JAB
Ah vâng, 'groupby'. Tôi đoán groupby có nghĩa là hoạt động trên dữ liệu được sắp xếp, nhưng khi không phân loại trước, nó sẽ cho tôi chính xác RLE :) –
Cảm ơn, JAB, tôi không biết groupby chỉ có thể lấy một tham số. Đó là tuyệt vời, bởi vì tôi có a.isnull() đã được tính toán trong mã của tôi –