2014-11-30 32 views
5

Tôi đang cố gắng đặt một DataFrame vào điều kiện là ngày cuối cùng của tháng. Tôi đã sử dụng:Làm cách nào để chọn 'ngày làm việc cuối cùng của tháng' trong Pandas?

df['Month_End'] = df.index.is_month_end 
sample = df[df['Month_End'] == 1] 

Điều này có tác dụng, nhưng tôi đang thiếu dữ liệu thị trường chứng khoán, nên tôi cần một cách để chọn "ngày làm việc cuối cùng của tháng".

Trả lời

5

Bạn có thể tạo time series với ngày làm việc cuối cùng của mỗi tháng bằng cách đi qua freq='BM'.

Ví dụ, để tạo ra một loạt các ngày làm việc cuối cùng của năm 2014:

>>> pd.date_range('1/1/2014', periods=12, freq='BM') 
[2014-01-31 00:00:00, ..., 2014-12-31 00:00:00] 
Length: 12, Freq: BM, Timezone: None 

Sau đó, bạn có thể sử dụng chuỗi thời gian này để tập hợp con/reindex DataFrame của bạn.

+0

Giải pháp này công trinh. Vấn đề duy nhất là trong một số chuỗi, ngày làm việc cuối cùng của tháng có thể là 'ngày lễ tùy chỉnh', vì vậy bạn sẽ cần phải đưa yếu tố đó vào phương trình. – hernanavella

Các vấn đề liên quan