Tôi có một bàn nơi một trong các cột là ngày xảy ra (các dataframe không lập chỉ mục theo ngày)Pandas ngày groupby phạm vi
Tôi muốn nhóm bàn theo ngày trong đó tất cả các mục trong đó xảy ra trước một ngày nhất định được nhóm thành một nhóm. Điều này sẽ cần phải được tích lũy, do đó, các nhóm sau sẽ bao gồm tất cả các điểm dữ liệu từ các phiên bản trước đó.
Dưới đây là các đối tượng datarange tôi cần phải nhóm theo:
date_rng = date_range('28/02/2010','31/08/2014',freq='3M')
Dưới đây là một ví dụ về một vài datapoints trong bảng:
df_raw.head()
Ticker FY Periodicity Measure Val Date
0 BP9DL90 2009 ANN CPX 1000.00 2008-03-31 00:00:00
1 BP9DL90 2010 ANN CPX 600.00 2009-03-25 00:00:00
2 BP9DL90 2010 ANN CPX 600.00 2009-09-16 00:00:00
3 BP9DL90 2011 ANN CPX 570.00 2010-03-17 00:00:00
4 BP9DL90 2011 ANN GRM 57.09 2010-09-06 00:00:00
[5 rows x 6 columns]
Bất kỳ đầu vào sẽ được nhiều đánh giá cao.
Cảm ơn
Nó không âm thanh như 'nhóm '(trong ý nghĩa gấu trúc) là cách tiếp cận đúng ở đây. Đó là một hoạt động loại trừ lẫn nhau. Bạn đang thực sự cố gắng làm gì? Nếu bạn muốn tổng hợp bất kỳ cột nào, bạn có thể xem xét lập chỉ mục theo ngày và sau đó, ví dụ: 'cumsum()' hoặc 'pd.rolling_apply()' để có được 'tổng số đang chạy' – Luciano
Tôi đang tìm cách lọc dữ liệu dựa trên các tiêu chí nhất định. Một trong những tiêu chí đó là "tính đến ngày x". Không tìm cách tổng hợp dữ liệu. Tôi không biết rằng nhóm gấu trúc đã loại trừ lẫn nhau - có lẽ sẽ phải thiết lập các vòng để tạo thủ công các tập hợp con của bảng chính. – user3294195
dựa trên điều đó, trước tiên tôi sẽ thử đọc dữ liệu với ngày tháng là chỉ mục (xem 'index_col' và' parse_dates' args của 'pd.read_csv()'), sau đó bạn có thể lặp lại dễ dàng như sau: 'for d in date_range: print (df_raw [: d]) 'sẽ in ra bảng (phụ) cập nhật d. – Luciano