时间差(Timedelta)是时间上的差异,以不同的单位来表示。例如:日,小时,分钟,秒。 它们可以是正值,也可以是负值。 可以使用各种参数创建 Timedelta 对象,如下所示:
In [2]:
import pandas as pd
pd.Timedelta('2 days 2 hours 15 minutes 30 seconds')
Out[2]:
Timedelta('2 days 02:15:30')In [3]:
pd.Timedelta(6,unit='h')
Out[3]:
Timedelta('0 days 06:00:00')In [4]:
pd.Timedelta(days=2)
Out[4]:
Timedelta('2 days 00:00:00')In [5]:
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
Out[5]:
| A | B | |
|---|---|---|
| 0 | 2012-01-01 | 0 days |
| 1 | 2012-01-02 | 1 days |
| 2 | 2012-01-03 | 2 days |
In [6]:
s = pd.Series(pd.date_range('2018-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
Out[6]:
| A | B | C | |
|---|---|---|---|
| 0 | 2018-01-01 | 0 days | 2018-01-01 |
| 1 | 2018-01-02 | 1 days | 2018-01-03 |
| 2 | 2018-01-03 | 2 days | 2018-01-05 |
In [7]:
df = pd.DataFrame(dict(A = s, B = td))
df['C']=df['A']+df['B']
df['D']=df['C']-df['B']
df
Out[7]:
| A | B | C | D | |
|---|---|---|---|---|
| 0 | 2018-01-01 | 0 days | 2018-01-01 | 2018-01-01 |
| 1 | 2018-01-02 | 1 days | 2018-01-03 | 2018-01-02 |
| 2 | 2018-01-03 | 2 days | 2018-01-05 | 2018-01-03 |