Trăn gấu trúc - Timedelta

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

Chúng ta có thể tạo các đối tượng Timedelta bằng cách sử dụng các đối số khác nhau như hình dưới đây:

Chuỗi

Bằng cách chuyển một chuỗi ký tự, chúng ta có thể tạo một đối tượng hẹn giờ.

import pandas as pd

print pd.Timedelta('2 days 2 hours 15 minutes 30 seconds')

Nó là output như sau -

2 days 02:15:30

Số nguyên

Bằng cách chuyển một giá trị số nguyên với đơn vị, một đối số sẽ tạo ra một đối tượng Timedelta.

import pandas as pd

print pd.Timedelta(6,unit='h')

Nó là output như sau -

0 days 06:00:00

Dữ liệu Offsets

Các phần bù dữ liệu như - tuần, ngày, giờ, phút, giây, mili giây, micro giây, nano giây cũng có thể được sử dụng trong xây dựng.

import pandas as pd

print pd.Timedelta(days=2)

Nó là output như sau -

2 days 00:00:00

to_timedelta ()

Sử dụng cấp cao nhất pd.to_timedelta, bạn có thể chuyển đổi vô hướng, mảng, danh sách hoặc chuỗi từ định dạng / giá trị thời gian được công nhận thành một kiểu Timedelta. Nó sẽ xây dựng Chuỗi nếu đầu vào là Chuỗi, một đại lượng vô hướng nếu đầu vào giống như vô hướng, ngược lại sẽ tạo ra mộtTimedeltaIndex.

import pandas as pd

print pd.Timedelta(days=2)

Nó là output như sau -

2 days 00:00:00

Hoạt động

Bạn có thể hoạt động trên Series / DataFrames và xây dựng timedelta64[ns] Chuỗi các phép toán trừ trên datetime64[ns] Chuỗi hoặc Dấu thời gian.

Bây giờ chúng ta hãy tạo một DataFrame với các đối tượng Timedelta và datetime và thực hiện một số phép toán số học trên nó -

import pandas as pd

s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
df = pd.DataFrame(dict(A = s, B = td))

print df

Nó là output như sau -

A      B
0  2012-01-01 0 days
1  2012-01-02 1 days
2  2012-01-03 2 days

Hoạt động bổ sung

import pandas as pd

s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
df = pd.DataFrame(dict(A = s, B = td))
df['C']=df['A']+df['B']

print df

Nó là output như sau -

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

Phép toán trừ

import pandas as pd

s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
df = pd.DataFrame(dict(A = s, B = td))
df['C']=df['A']+df['B']
df['D']=df['C']+df['B']

print df

Nó là output như sau -

A      B          C          D
0 2012-01-01 0 days 2012-01-01 2012-01-01
1 2012-01-02 1 days 2012-01-03 2012-01-04
2 2012-01-03 2 days 2012-01-05 2012-01-07