Tôi có một khung dữ liệu gấu trúc của tọa độ xe (từ nhiều phương tiện trong nhiều ngày). Đối với mỗi chiếc xe và cho mỗi ngày, tôi làm hai việc: hoặc áp dụng một thuật toán cho nó, hoặc lọc nó ra khỏi tập dữ liệu hoàn toàn nếu nó không đáp ứng các tiêu chí nhất định.Xử lý dữ liệu gấu trúc theo kiểu khai báo
Để đạt được điều này tôi sử dụng df.groupby('vehicle_id', 'day')
và sau đó .apply(algorithm)
hoặc .filter(condition)
nơi algorithm
và condition
là chức năng mà mất trong một dataframe.
Tôi muốn xử lý toàn bộ tập dữ liệu của mình (bao gồm nhiều bước .apply
và .filter
) được viết theo kiểu khai báo, trái ngược với vòng lặp thông qua các nhóm, với mục tiêu của toàn bộ nội dung như:
df.group_by('vehicle_id', 'day').apply(algorithm1).filter(condition1).apply(algorithm2).filter(condition2)
Tất nhiên, các mã trên là không chính xác kể từ .apply()
và .filter()
trở dataframes mới, và điều này là chính xác vấn đề của tôi. Chúng trả về tất cả dữ liệu trong một khung dữ liệu duy nhất và tôi thấy rằng tôi đã liên tục áp dụng .groupby('vehicle_id', 'day')
.
Có cách nào tốt đẹp để tôi có thể viết bài này mà không cần phải nhóm theo cùng một cột nhiều lần không?