100 ngày trăn trở

Timedeltas là sự khác biệt về thời gian, được biểu thị bằng đơn vị khác biệt, e. g. ngày, giờ, phút, giây. Chúng có thể là cả tích cực và tiêu cực

In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 là một lớp con của In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 9 và hoạt động theo cách tương tự, nhưng cho phép tương thích với các loại In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 0 cũng như một loạt các biểu diễn, phân tích cú pháp và thuộc tính tùy chỉnh

phân tích cú pháp

Bạn có thể xây dựng một vô hướng In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 thông qua các đối số khác nhau, bao gồm các chuỗi

In [1]: import datetime # strings In [2]: pd.Timedelta("1 days") Out[2]: Timedelta('1 days 00:00:00') In [3]: pd.Timedelta("1 days 00:00:00") Out[3]: Timedelta('1 days 00:00:00') In [4]: pd.Timedelta("1 days 2 hours") Out[4]: Timedelta('1 days 02:00:00') In [5]: pd.Timedelta("-1 days 2 min 3us") Out[5]: Timedelta('-2 days +23:57:59.999997') # like datetime.timedelta # note: these MUST be specified as keyword arguments In [6]: pd.Timedelta(days=1, seconds=1) Out[6]: Timedelta('1 days 00:00:01') # integers with a unit In [7]: pd.Timedelta(1, unit="d") Out[7]: Timedelta('1 days 00:00:00') # from a datetime.timedelta/np.timedelta64 In [8]: pd.Timedelta(datetime.timedelta(days=1, seconds=1)) Out[8]: Timedelta('1 days 00:00:01') In [9]: pd.Timedelta(np.timedelta64(1, "ms")) Out[9]: Timedelta('0 days 00:00:00.001000') # negative Timedeltas have this string repr # to be more consistent with datetime.timedelta conventions In [10]: pd.Timedelta("-1us") Out[10]: Timedelta('-1 days +23:59:59.999999') # a NaT In [11]: pd.Timedelta("nan") Out[11]: NaT In [12]: pd.Timedelta("nat") Out[12]: NaT # ISO 8601 Duration strings In [13]: pd.Timedelta("P0DT0H1M0S") Out[13]: Timedelta('0 days 00:01:00') In [14]: pd.Timedelta("P0DT0H0M0.000000123S") Out[14]: Timedelta('0 days 00:00:00.000000123')

(In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 2) cũng có thể được sử dụng trong xây dựng

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02')

Hơn nữa, các phép toán giữa các số vô hướng mang lại một số vô hướng khác In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8

________số 8_______

to_timedelta

Sử dụng In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 4 cấp cao nhất, bạn có thể chuyển đổi vô hướng, mảng, danh sách hoặc Sê-ri từ định dạng / giá trị timedelta được công nhận thành loại In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8. Nó sẽ xây dựng Sê-ri nếu đầu vào là Sê-ri, vô hướng nếu đầu vào giống vô hướng, nếu không, nó sẽ xuất ra một In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6

Bạn có thể phân tích cú pháp một chuỗi thành Timedelta

In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500')

hoặc một danh sách/mảng chuỗi

In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None)

Đối số từ khóa In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 7 chỉ định đơn vị của Timedelta nếu đầu vào là số

In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None)

Cảnh báo

Nếu một chuỗi hoặc mảng chuỗi được chuyển làm đầu vào thì đối số từ khóa In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 7 sẽ bị bỏ qua. Nếu một chuỗi không có đơn vị được chuyển thì đơn vị mặc định là nano giây được giả định

giới hạn múi giờ

gấu trúc đại diện cho In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 9 ở độ phân giải nano giây sử dụng số nguyên 64 bit. Như vậy, giới hạn số nguyên 64 bit xác định giới hạn In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8

In [22]: pd.Timedelta.min Out[22]: Timedelta('-106752 days +00:12:43.145224193') In [23]: pd.Timedelta.max Out[23]: Timedelta('106751 days 23:47:16.854775807')

hoạt động

Bạn có thể thao tác trên Sê-ri/Khung dữ liệu và xây dựng Sê-ri In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 1 thông qua phép trừ trên Sê-ri In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 2 hoặc Sê-ri In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 3

In [24]: s = pd.Series(pd.date_range("2012-1-1", periods=3, freq="D")) In [25]: td = pd.Series([pd.Timedelta(days=i) for i in range(3)]) In [26]: df = pd.DataFrame({"A": s, "B": td}) In [27]: df Out[27]: A B 0 2012-01-01 0 days 1 2012-01-02 1 days 2 2012-01-03 2 days In [28]: df["C"] = df["A"] + df["B"] In [29]: df Out[29]: A B C 0 2012-01-01 0 days 2012-01-01 1 2012-01-02 1 days 2012-01-03 2 2012-01-03 2 days 2012-01-05 In [30]: df.dtypes Out[30]: A datetime64[ns] B timedelta64[ns] C datetime64[ns] dtype: object In [31]: s - s.max() Out[31]: 0 -2 days 1 -1 days 2 0 days dtype: timedelta64[ns] In [32]: s - datetime.datetime(2011, 1, 1, 3, 5) Out[32]: 0 364 days 20:55:00 1 365 days 20:55:00 2 366 days 20:55:00 dtype: timedelta64[ns] In [33]: s + datetime.timedelta(minutes=5) Out[33]: 0 2012-01-01 00:05:00 1 2012-01-02 00:05:00 2 2012-01-03 00:05:00 dtype: datetime64[ns] In [34]: s + pd.offsets.Minute(5) Out[34]: 0 2012-01-01 00:05:00 1 2012-01-02 00:05:00 2 2012-01-03 00:05:00 dtype: datetime64[ns] In [35]: s + pd.offsets.Minute(5) + pd.offsets.Milli(5) Out[35]: 0 2012-01-01 00:05:00.005 1 2012-01-02 00:05:00.005 2 2012-01-03 00:05:00.005 dtype: datetime64[ns]

Các phép toán với số vô hướng từ chuỗi In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 1

In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns]

Chuỗi múi giờ có giá trị In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 5 được hỗ trợ

In [38]: y = s - s.shift() In [39]: y Out[39]: 0 NaT 1 1 days 2 1 days dtype: timedelta64[ns]

Các phần tử có thể được đặt thành In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 5 bằng cách sử dụng In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 7 tương tự với datetimes

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 0

Toán hạng cũng có thể xuất hiện theo thứ tự đảo ngược (một đối tượng đơn lẻ được vận hành với Sê-ri)

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 1

Các hoạt động của In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 8 và In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 9 tương ứng được hỗ trợ trên các khung

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 2

Hoạt động của In [22]: pd.Timedelta.min Out[22]: Timedelta('-106752 days +00:12:43.145224193') In [23]: pd.Timedelta.max Out[23]: Timedelta('106751 days 23:47:16.854775807') 0 cũng được hỗ trợ trên Sê-ri. Một kết quả vô hướng sẽ là một In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 3

Bạn có thể fillna trên timedelta, chuyển timedelta để nhận một giá trị cụ thể

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 4

Bạn cũng có thể phủ định, nhân lên và sử dụng In [22]: pd.Timedelta.min Out[22]: Timedelta('-106752 days +00:12:43.145224193') In [23]: pd.Timedelta.max Out[23]: Timedelta('106751 days 23:47:16.854775807') 2 trên In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 9

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 5

giảm

Thao tác giảm số cho In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 1 sẽ trả về đối tượng In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8. Như thường lệ, In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 5 bị bỏ qua trong quá trình đánh giá

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 6

chuyển đổi tần số

Sê-ri Timedelta, In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6 và In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 vô hướng có thể được chuyển đổi thành 'tần số' khác bằng cách chia cho một timedelta khác hoặc bằng cách gõ vào một loại timedelta cụ thể. Các hoạt động này mang lại Chuỗi và lan truyền In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 5 -> In [24]: s = pd.Series(pd.date_range("2012-1-1", periods=3, freq="D")) In [25]: td = pd.Series([pd.Timedelta(days=i) for i in range(3)]) In [26]: df = pd.DataFrame({"A": s, "B": td}) In [27]: df Out[27]: A B 0 2012-01-01 0 days 1 2012-01-02 1 days 2 2012-01-03 2 days In [28]: df["C"] = df["A"] + df["B"] In [29]: df Out[29]: A B C 0 2012-01-01 0 days 2012-01-01 1 2012-01-02 1 days 2012-01-03 2 2012-01-03 2 days 2012-01-05 In [30]: df.dtypes Out[30]: A datetime64[ns] B timedelta64[ns] C datetime64[ns] dtype: object In [31]: s - s.max() Out[31]: 0 -2 days 1 -1 days 2 0 days dtype: timedelta64[ns] In [32]: s - datetime.datetime(2011, 1, 1, 3, 5) Out[32]: 0 364 days 20:55:00 1 365 days 20:55:00 2 366 days 20:55:00 dtype: timedelta64[ns] In [33]: s + datetime.timedelta(minutes=5) Out[33]: 0 2012-01-01 00:05:00 1 2012-01-02 00:05:00 2 2012-01-03 00:05:00 dtype: datetime64[ns] In [34]: s + pd.offsets.Minute(5) Out[34]: 0 2012-01-01 00:05:00 1 2012-01-02 00:05:00 2 2012-01-03 00:05:00 dtype: datetime64[ns] In [35]: s + pd.offsets.Minute(5) + pd.offsets.Milli(5) Out[35]: 0 2012-01-01 00:05:00.005 1 2012-01-02 00:05:00.005 2 2012-01-03 00:05:00.005 dtype: datetime64[ns] 0. Lưu ý rằng phép chia theo vô hướng NumPy là phép chia thực, trong khi phép chia theo kiểu tương đương với phép chia sàn

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 7

Chia hoặc nhân một Sê-ri In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 1 với một số nguyên hoặc Sê-ri số nguyên sẽ tạo ra một Sê-ri dtypes In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 1 khác

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 8

Phép chia làm tròn (phép chia sàn) của một chuỗi In [20]: pd.to_timedelta(np.arange(5), unit="s") Out[20]: TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03', '0 days 00:00:04'], dtype='timedelta64[ns]', freq=None) In [21]: pd.to_timedelta(np.arange(5), unit="d") Out[21]: TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq=None) 1 cho một số vô hướng In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 cho một chuỗi các số nguyên

In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 9

Các hoạt động mod (%) và divmod được xác định cho In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 khi hoạt động với một kiểu timedelta khác hoặc với một đối số số

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 0

Thuộc tính

Bạn có thể truy cập trực tiếp các thành phần khác nhau của In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 hoặc In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6 bằng cách sử dụng các thuộc tính In [24]: s = pd.Series(pd.date_range("2012-1-1", periods=3, freq="D")) In [25]: td = pd.Series([pd.Timedelta(days=i) for i in range(3)]) In [26]: df = pd.DataFrame({"A": s, "B": td}) In [27]: df Out[27]: A B 0 2012-01-01 0 days 1 2012-01-02 1 days 2 2012-01-03 2 days In [28]: df["C"] = df["A"] + df["B"] In [29]: df Out[29]: A B C 0 2012-01-01 0 days 2012-01-01 1 2012-01-02 1 days 2012-01-03 2 2012-01-03 2 days 2012-01-05 In [30]: df.dtypes Out[30]: A datetime64[ns] B timedelta64[ns] C datetime64[ns] dtype: object In [31]: s - s.max() Out[31]: 0 -2 days 1 -1 days 2 0 days dtype: timedelta64[ns] In [32]: s - datetime.datetime(2011, 1, 1, 3, 5) Out[32]: 0 364 days 20:55:00 1 365 days 20:55:00 2 366 days 20:55:00 dtype: timedelta64[ns] In [33]: s + datetime.timedelta(minutes=5) Out[33]: 0 2012-01-01 00:05:00 1 2012-01-02 00:05:00 2 2012-01-03 00:05:00 dtype: datetime64[ns] In [34]: s + pd.offsets.Minute(5) Out[34]: 0 2012-01-01 00:05:00 1 2012-01-02 00:05:00 2 2012-01-03 00:05:00 dtype: datetime64[ns] In [35]: s + pd.offsets.Minute(5) + pd.offsets.Milli(5) Out[35]: 0 2012-01-01 00:05:00.005 1 2012-01-02 00:05:00.005 2 2012-01-03 00:05:00.005 dtype: datetime64[ns] 8. Các giá trị này giống hệt với các giá trị được trả về bởi In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 9, trong đó, ví dụ: thuộc tính In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 0 biểu thị số giây >= 0 và < 1 ngày. Chúng được ký tùy theo việc In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 có được ký hay không

Các hoạt động này cũng có thể được truy cập trực tiếp thông qua thuộc tính In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 2 của In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 3.

Ghi chú

Lưu ý rằng các thuộc tính KHÔNG phải là giá trị được hiển thị của In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8. Sử dụng In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 5 để truy xuất các giá trị được hiển thị

Cho một In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 3

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 1

Bạn có thể truy cập trực tiếp giá trị của các trường cho một vô hướng In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 2

Bạn có thể sử dụng thuộc tính In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 5 để truy cập dạng rút gọn của timedelta. Điều này trả về một In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 9 được lập chỉ mục tương tự như In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 3. Đây là những giá trị được hiển thị của In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 3

Bạn có thể chuyển đổi một In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8 thành một chuỗi bằng phương thức In [38]: y = s - s.shift() In [39]: y Out[39]: 0 NaT 1 1 days 2 1 days dtype: timedelta64[ns] 3

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 4

Timedelta Index

Để tạo một chỉ mục với đồng bằng thời gian, bạn có thể sử dụng hoặc hàm tạo

Sử dụng In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6 bạn có thể truyền các đối tượng dạng chuỗi, In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 8, In [38]: y = s - s.shift() In [39]: y Out[39]: 0 NaT 1 1 days 2 1 days dtype: timedelta64[ns] 8 hoặc In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 0. Vượt qua In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 00 sẽ đại diện cho các giá trị còn thiếu

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 5

Chuỗi 'suy luận' có thể được chuyển để đặt tần suất của chỉ mục làm tần suất được suy luận khi tạo

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 6

Tạo phạm vi thời gian đồng bằng

Tương tự như , bạn có thể xây dựng các phạm vi thông thường của một In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6 bằng cách sử dụng. Tần suất mặc định cho In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 04 là ngày dương lịch

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 7

Có thể sử dụng nhiều cách kết hợp khác nhau của In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 05, In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 06 và In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 07 với In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 04

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 8

Tham số In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 09 có thể truyền nhiều loại

In [16]: pd.Timedelta(pd.offsets.Day(2)) + pd.Timedelta(pd.offsets.Second(2)) + pd.Timedelta( ....: "00:00:00.000123" ....: ) ....: Out[16]: Timedelta('2 days 00:00:02.000123') 9

Việc chỉ định In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 05, In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 06 và In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 07 sẽ tạo ra một loạt các múi giờ cách đều nhau từ In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 05 đến In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 06, với số phần tử In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 07 trong kết quả là In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6

In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 0

Sử dụng Timedelta Index

Tương tự như các chỉ số giống như ngày giờ khác, In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 17 và In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 18, bạn có thể sử dụng In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6 làm chỉ mục của các đối tượng gấu trúc

In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 1

Các lựa chọn hoạt động tương tự, với sự ép buộc đối với các chuỗi và lát cắt

In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 2

Ngoài ra, bạn có thể sử dụng lựa chọn chuỗi một phần và phạm vi sẽ được suy ra

In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 3

hoạt động

Cuối cùng, sự kết hợp của In [19]: pd.to_timedelta(["1 days 06:05:01.00003", "15.5us", "nan"]) Out[19]: TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None) 6 với In [15]: pd.Timedelta(pd.offsets.Second(2)) Out[15]: Timedelta('0 days 00:00:02') 17 cho phép một số hoạt động kết hợp nhất định bảo toàn NaT

In [17]: pd.to_timedelta("1 days 06:05:01.00003") Out[17]: Timedelta('1 days 06:05:01.000030') In [18]: pd.to_timedelta("15.5us") Out[18]: Timedelta('0 days 00:00:00.000015500') 4

chuyển đổi

Tương tự như chuyển đổi tần số trên In [36]: y = s - s[0] In [37]: y Out[37]: 0 0 days 1 1 days 2 2 days dtype: timedelta64[ns] 3 ở trên, bạn có thể chuyển đổi các chỉ số này để tạo ra một Chỉ số khác

Chủ đề