Có cách nào tốt hơn bdate_range() để đo lường ngày làm việc giữa hai cột ngày qua gấu trúc không?Đếm ngày làm việc giữa hai chuỗi
df = pd.DataFrame({ 'A' : ['1/1/2013', '2/2/2013', '3/3/2013'],
'B': ['1/12/2013', '4/4/2013', '3/3/2013']})
print df
df['A'] = pd.to_datetime(df['A'])
df['B'] = pd.to_datetime(df['B'])
f = lambda x: len(pd.bdate_range(x['A'], x['B']))
df['DIFF'] = df.apply(f, axis=1)
print df
Với sản lượng:
A B
0 1/1/2013 1/12/2013
1 2/2/2013 4/4/2013
2 3/3/2013 3/3/2013
A B DIFF
0 2013-01-01 00:00:00 2013-01-12 00:00:00 9
1 2013-02-02 00:00:00 2013-04-04 00:00:00 44
2 2013-03-03 00:00:00 2013-03-03 00:00:00 0
Cảm ơn!
Có thể trùng lặp: http://stackoverflow.com/questions/13019719/get-business-days-between-start-and-end-date-using-pandas (Xem phần dưới để đếm ngày, thay vì liệt kê chúng.) –
@DanAllan có cảm giác như đang làm điều tương tự, theo nghĩa là bạn đang tạo một phạm vi ngày trung gian ... tuy nhiên nó có thể không bị chiếm hữu ble mà không làm điều đó. : s –
Có, chắc chắn. Nếu bạn đang nghiên cứu các phạm vi dài và bạn chỉ cần loại trừ các ngày cuối tuần (nhưng không phải ngày lễ), tôi hy vọng sẽ nhanh hơn khi xây dựng hàm tùy chỉnh sử dụng các ngày trong tuần cho A và B và tổng số khác biệt của chúng trong thời gian tính toán số ngày làm việc. –