2013-08-25 37 views
5

Tôi nhận thấy rằng Pandas biết cách định dạng thông minh đối tượng timedelta thành một chuỗi.Định dạng chuỗi ký tự thời gian trong Pandas

In [1]: df[column][rows].max() 
Out[1]: 
0 2 days, 02:08:07 
dtype: timedelta64[ns] 

Khi tôi cố thực hiện việc này theo cách thủ công, tôi tiếp tục nhận chuỗi theo nano giây.

In [2]: df[column][rows].max()[0] 
Out[2]: numpy.timedelta64(180487000000000,'ns') 

In [2]: str(df[column][rows].max()[0]) 
Out[2]: '180487000000000 nanoseconds' 

Tôi thà không phát minh lại bánh xe, như vậy là có cách nào để truy cập vào các phương pháp chuỗi định dạng (hoặc chuỗi chính nó) mà Pandas sử dụng để hiển thị một đối tượng timedelta trong x days, hh:mm:ss?

Trả lời

6

Chức năng nằm here:

pd.tslib.repr_timedelta64 

Trong hành động:

In [11]: pd.tslib.repr_timedelta64(np.timedelta64(180487000000000,'ns')) 
Out[11]: '2 days, 02:08:07' 
+0

Cảm ơn! Đây là một chức năng hữu ích để có –

+4

Tôi có thể hỏi, làm sao bạn biết đây là chức năng? Bạn có biết mã cơ bản tốt không? Pandas có một số tiện ích định dạng chuỗi tốt đẹp, vì vậy nó sẽ là tuyệt vời để biết làm thế nào để duyệt chúng. –

+1

Tôi đã có một cảm giác nó sẽ được trong tslib (như tôi biết cơ sở mã, và đó là nơi stufferies stuff là), và tìm thấy nó với một tab hoàn thành :) –

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