Khung dữ liệu gấu trúc của tôi bao gồm cột phân loại JOB_TITLE, cột số BASE_SALARY và chỉ mục datetime JOIN_DATE. Tôi muốn thực hiện một tập hợp trong nhóm của datetimes phân loại và downsampled như sau:Hoạt động đồng thời của groupby và resample trên khung dữ liệu gấu trúc?
# Resampled at frequency of start data of every 5 years
mean_agg = (df
.groupby('JOB_TITLE')
.resample('5AS')['BASE_SALARY']
.mean())
Thật không may, như hoạt động groupby đang xảy ra trước khi đổi mẫu, các hoạt động được thực hiện một cách độc lập resample đối với từng nhóm JOB_TITLE. Kết quả này theo sau Series:
| JOB_TITLE | JOIN_DATE | |
|-------------------|------------|-------|
| Data Scientist | 2004-01-01 | 60000 |
| | 2009-01-01 | 75000 |
| | 2014-01-01 | 90000 |
| | | |
| Software Engineer | 2001-01-01 | 70000 |
| | 2006-01-01 | 85000 |
| | 2011-01-01 | 90000 |
| | 2016-01-01 | 85000 |
Như bạn có thể thấy chỉ mục ở cấp JOIN_DATE cho nhóm Data Scientist và Kỹ sư phần mềm không được căn chỉnh. Điều này tạo ra một vấn đề khi bạn áp dụng unstack cho cấp JOB_TITLE như sau:
mean_agg.unstack('JOB_TITLE')
Điều này dẫn đến dataframe sau:
| JOB_TITLE | Data Scientist | Software Engineer |
|------------|----------------|-------------------|
| JOIN_DATE | | |
| 2001-01-01 | NaN | 70000 |
| 2004-01-01 | 60000 | NaN |
| 2006-01-01 | NaN | 85000 |
| 2009-01-01 | 75000 | NaN |
| 2011-01-01 | NaN | 70000 |
| 2014-01-01 | 90000 | NaN |
| 2016-01-01 | NaN | 85000 |
Làm thế nào tôi có thể tránh hoạt động tuần tự này groupby và resample và thay vào đó thực hiện một hoạt động đồng thời? Cảm ơn!
Tuyệt vời! 'pd.TimeGrouper()' là hoàn hảo cho vấn đề của tôi. –