import pandas as pd
import datetime as dt
dt.date(2016, 4, 12)
datetime.date(2016, 4, 12)
someday = dt.date(2010, 1, 20)
someday.isoformat()
'2010-01-20'
str(dt.datetime(2010, 1, 10, 8, 13, 57))
'2010-01-10 08:13:57'
pd.Timestamp('2015-03-31')
Timestamp('2015-03-31 00:00:00')
pd.Timestamp('2015/03/31')
Timestamp('2015-03-31 00:00:00')
pd.Timestamp('2013, 11, 25')
Timestamp('2013-11-25 00:00:00')
pd.Timestamp('1/1/2015')
Timestamp('2015-01-01 00:00:00')
pd.Timestamp('2021-03-08 08:35:15')
Timestamp('2021-03-08 08:35:15')
pd.Timestamp('2021-03-08 6:13:29 PM')
Timestamp('2021-03-08 18:13:29')
pd.Timestamp(dt.date(2015, 1, 1))
Timestamp('2015-01-01 00:00:00')
pd.Timestamp(dt.datetime(2000, 2, 3, 21, 35, 22))
Timestamp('2000-02-03 21:35:22')
dates = ['2016/01/02', '2016,04,12', '2009-09-07']
pd.DatetimeIndex(dates)
DatetimeIndex(['2016-01-02', '2016-12-01', '2009-09-07'], dtype='datetime64[ns]', freq=None)
dates = [dt.date(2016, 1, 10), dt.date(1994, 6, 13), dt.date(2003, 12, 29)]
dt_index = pd.DatetimeIndex(dates)
values = [100, 200, 300]
pd.Series(data = values, index=dt_index)
2016-01-10 100 1994-06-13 200 2003-12-29 300 dtype: int64
pd.to_datetime('2001-04-19')
Timestamp('2001-04-19 00:00:00')
pd.to_datetime(dt.date(2015, 1, 1))
Timestamp('2015-01-01 00:00:00')
pd.to_datetime(dt.datetime(2015, 1, 1, 14, 35, 20))
Timestamp('2015-01-01 14:35:20')
pd.to_datetime(['2015-01-01', '2014/02/08', '2016', 'July 4th, 1996'])
DatetimeIndex(['2015-01-01', '2014-02-08', '2016-01-01', '1996-07-04'], dtype='datetime64[ns]', freq=None)
times = pd.Series(['2015-01-01', '2014/02/08', '2016', 'July 4th, 1996'])
times
0 2015-01-01 1 2014/02/08 2 2016 3 July 4th, 1996 dtype: object
pd.to_datetime(times)
0 2015-01-01 1 2014-02-08 2 2016-01-01 3 1996-07-04 dtype: datetime64[ns]
dates = pd.Series(['July 4th, 1996', '10/04/1991', 'Hello', '2015-02-31'])
pd.to_datetime(dates, errors='coerce')
0 1996-07-04 1 1991-10-04 2 NaT 3 NaT dtype: datetime64[ns]
pd.to_datetime([1349720105, 1349806505, 1349892905, 1349979305, 1350065705], unit='s')
DatetimeIndex(['2012-10-08 18:15:05', '2012-10-09 18:15:05', '2012-10-10 18:15:05', '2012-10-11 18:15:05', '2012-10-12 18:15:05'], dtype='datetime64[ns]', freq=None)
pd.date_range(start='2016-01-01', end='2016-01-10', freq='D')
DatetimeIndex(['2016-01-01', '2016-01-02', '2016-01-03', '2016-01-04', '2016-01-05', '2016-01-06', '2016-01-07', '2016-01-08', '2016-01-09', '2016-01-10'], dtype='datetime64[ns]', freq='D')
pd.date_range(start='2016-01-01', end='2016-01-10', freq='B')
DatetimeIndex(['2016-01-01', '2016-01-04', '2016-01-05', '2016-01-06', '2016-01-07', '2016-01-08'], dtype='datetime64[ns]', freq='B')
pd.date_range(start='2016-01-01', end='2016-01-10', freq='W')
DatetimeIndex(['2016-01-03', '2016-01-10'], dtype='datetime64[ns]', freq='W-SUN')
pd.date_range(start='2016-01-01', end='2016-01-10', freq='H')
DatetimeIndex(['2016-01-01 00:00:00', '2016-01-01 01:00:00', '2016-01-01 02:00:00', '2016-01-01 03:00:00', '2016-01-01 04:00:00', '2016-01-01 05:00:00', '2016-01-01 06:00:00', '2016-01-01 07:00:00', '2016-01-01 08:00:00', '2016-01-01 09:00:00', ... '2016-01-09 15:00:00', '2016-01-09 16:00:00', '2016-01-09 17:00:00', '2016-01-09 18:00:00', '2016-01-09 19:00:00', '2016-01-09 20:00:00', '2016-01-09 21:00:00', '2016-01-09 22:00:00', '2016-01-09 23:00:00', '2016-01-10 00:00:00'], dtype='datetime64[ns]', length=217, freq='H')
pd.date_range(start='2016-01-01', end='2016-12-31', freq='M')
DatetimeIndex(['2016-01-31', '2016-02-29', '2016-03-31', '2016-04-30', '2016-05-31', '2016-06-30', '2016-07-31', '2016-08-31', '2016-09-30', '2016-10-31', '2016-11-30', '2016-12-31'], dtype='datetime64[ns]', freq='M')
pd.date_range(start='2012-09-09', periods=25, freq='D')
DatetimeIndex(['2012-09-09', '2012-09-10', '2012-09-11', '2012-09-12', '2012-09-13', '2012-09-14', '2012-09-15', '2012-09-16', '2012-09-17', '2012-09-18', '2012-09-19', '2012-09-20', '2012-09-21', '2012-09-22', '2012-09-23', '2012-09-24', '2012-09-25', '2012-09-26', '2012-09-27', '2012-09-28', '2012-09-29', '2012-09-30', '2012-10-01', '2012-10-02', '2012-10-03'], dtype='datetime64[ns]', freq='D')
pd.date_range(start='2012-09-09', periods=50, freq='B') # B -> Business Days
DatetimeIndex(['2012-09-10', '2012-09-11', '2012-09-12', '2012-09-13', '2012-09-14', '2012-09-17', '2012-09-18', '2012-09-19', '2012-09-20', '2012-09-21', '2012-09-24', '2012-09-25', '2012-09-26', '2012-09-27', '2012-09-28', '2012-10-01', '2012-10-02', '2012-10-03', '2012-10-04', '2012-10-05', '2012-10-08', '2012-10-09', '2012-10-10', '2012-10-11', '2012-10-12', '2012-10-15', '2012-10-16', '2012-10-17', '2012-10-18', '2012-10-19', '2012-10-22', '2012-10-23', '2012-10-24', '2012-10-25', '2012-10-26', '2012-10-29', '2012-10-30', '2012-10-31', '2012-11-01', '2012-11-02', '2012-11-05', '2012-11-06', '2012-11-07', '2012-11-08', '2012-11-09', '2012-11-12', '2012-11-13', '2012-11-14', '2012-11-15', '2012-11-16'], dtype='datetime64[ns]', freq='B')
pd.date_range(start='2012-09-09', periods=60, freq='MS')
DatetimeIndex(['2012-10-01', '2012-11-01', '2012-12-01', '2013-01-01', '2013-02-01', '2013-03-01', '2013-04-01', '2013-05-01', '2013-06-01', '2013-07-01', '2013-08-01', '2013-09-01', '2013-10-01', '2013-11-01', '2013-12-01', '2014-01-01', '2014-02-01', '2014-03-01', '2014-04-01', '2014-05-01', '2014-06-01', '2014-07-01', '2014-08-01', '2014-09-01', '2014-10-01', '2014-11-01', '2014-12-01', '2015-01-01', '2015-02-01', '2015-03-01', '2015-04-01', '2015-05-01', '2015-06-01', '2015-07-01', '2015-08-01', '2015-09-01', '2015-10-01', '2015-11-01', '2015-12-01', '2016-01-01', '2016-02-01', '2016-03-01', '2016-04-01', '2016-05-01', '2016-06-01', '2016-07-01', '2016-08-01', '2016-09-01', '2016-10-01', '2016-11-01', '2016-12-01', '2017-01-01', '2017-02-01', '2017-03-01', '2017-04-01', '2017-05-01', '2017-06-01', '2017-07-01', '2017-08-01', '2017-09-01'], dtype='datetime64[ns]', freq='MS')
pd.date_range(start='2012-09-09', periods=30, freq='6H')
DatetimeIndex(['2012-09-09 00:00:00', '2012-09-09 06:00:00', '2012-09-09 12:00:00', '2012-09-09 18:00:00', '2012-09-10 00:00:00', '2012-09-10 06:00:00', '2012-09-10 12:00:00', '2012-09-10 18:00:00', '2012-09-11 00:00:00', '2012-09-11 06:00:00', '2012-09-11 12:00:00', '2012-09-11 18:00:00', '2012-09-12 00:00:00', '2012-09-12 06:00:00', '2012-09-12 12:00:00', '2012-09-12 18:00:00', '2012-09-13 00:00:00', '2012-09-13 06:00:00', '2012-09-13 12:00:00', '2012-09-13 18:00:00', '2012-09-14 00:00:00', '2012-09-14 06:00:00', '2012-09-14 12:00:00', '2012-09-14 18:00:00', '2012-09-15 00:00:00', '2012-09-15 06:00:00', '2012-09-15 12:00:00', '2012-09-15 18:00:00', '2012-09-16 00:00:00', '2012-09-16 06:00:00'], dtype='datetime64[ns]', freq='6H')
pd.date_range(end='1999-12-31', periods=20, freq='D')
DatetimeIndex(['1999-12-12', '1999-12-13', '1999-12-14', '1999-12-15', '1999-12-16', '1999-12-17', '1999-12-18', '1999-12-19', '1999-12-20', '1999-12-21', '1999-12-22', '1999-12-23', '1999-12-24', '1999-12-25', '1999-12-26', '1999-12-27', '1999-12-28', '1999-12-29', '1999-12-30', '1999-12-31'], dtype='datetime64[ns]', freq='D')
pd.date_range(end='1999-12-31', periods=53, freq='MS')
DatetimeIndex(['1995-08-01', '1995-09-01', '1995-10-01', '1995-11-01', '1995-12-01', '1996-01-01', '1996-02-01', '1996-03-01', '1996-04-01', '1996-05-01', '1996-06-01', '1996-07-01', '1996-08-01', '1996-09-01', '1996-10-01', '1996-11-01', '1996-12-01', '1997-01-01', '1997-02-01', '1997-03-01', '1997-04-01', '1997-05-01', '1997-06-01', '1997-07-01', '1997-08-01', '1997-09-01', '1997-10-01', '1997-11-01', '1997-12-01', '1998-01-01', '1998-02-01', '1998-03-01', '1998-04-01', '1998-05-01', '1998-06-01', '1998-07-01', '1998-08-01', '1998-09-01', '1998-10-01', '1998-11-01', '1998-12-01', '1999-01-01', '1999-02-01', '1999-03-01', '1999-04-01', '1999-05-01', '1999-06-01', '1999-07-01', '1999-08-01', '1999-09-01', '1999-10-01', '1999-11-01', '1999-12-01'], dtype='datetime64[ns]', freq='MS')
pd.date_range(end='1999-12-31', periods=80, freq='7H')
DatetimeIndex(['1999-12-07 23:00:00', '1999-12-08 06:00:00', '1999-12-08 13:00:00', '1999-12-08 20:00:00', '1999-12-09 03:00:00', '1999-12-09 10:00:00', '1999-12-09 17:00:00', '1999-12-10 00:00:00', '1999-12-10 07:00:00', '1999-12-10 14:00:00', '1999-12-10 21:00:00', '1999-12-11 04:00:00', '1999-12-11 11:00:00', '1999-12-11 18:00:00', '1999-12-12 01:00:00', '1999-12-12 08:00:00', '1999-12-12 15:00:00', '1999-12-12 22:00:00', '1999-12-13 05:00:00', '1999-12-13 12:00:00', '1999-12-13 19:00:00', '1999-12-14 02:00:00', '1999-12-14 09:00:00', '1999-12-14 16:00:00', '1999-12-14 23:00:00', '1999-12-15 06:00:00', '1999-12-15 13:00:00', '1999-12-15 20:00:00', '1999-12-16 03:00:00', '1999-12-16 10:00:00', '1999-12-16 17:00:00', '1999-12-17 00:00:00', '1999-12-17 07:00:00', '1999-12-17 14:00:00', '1999-12-17 21:00:00', '1999-12-18 04:00:00', '1999-12-18 11:00:00', '1999-12-18 18:00:00', '1999-12-19 01:00:00', '1999-12-19 08:00:00', '1999-12-19 15:00:00', '1999-12-19 22:00:00', '1999-12-20 05:00:00', '1999-12-20 12:00:00', '1999-12-20 19:00:00', '1999-12-21 02:00:00', '1999-12-21 09:00:00', '1999-12-21 16:00:00', '1999-12-21 23:00:00', '1999-12-22 06:00:00', '1999-12-22 13:00:00', '1999-12-22 20:00:00', '1999-12-23 03:00:00', '1999-12-23 10:00:00', '1999-12-23 17:00:00', '1999-12-24 00:00:00', '1999-12-24 07:00:00', '1999-12-24 14:00:00', '1999-12-24 21:00:00', '1999-12-25 04:00:00', '1999-12-25 11:00:00', '1999-12-25 18:00:00', '1999-12-26 01:00:00', '1999-12-26 08:00:00', '1999-12-26 15:00:00', '1999-12-26 22:00:00', '1999-12-27 05:00:00', '1999-12-27 12:00:00', '1999-12-27 19:00:00', '1999-12-28 02:00:00', '1999-12-28 09:00:00', '1999-12-28 16:00:00', '1999-12-28 23:00:00', '1999-12-29 06:00:00', '1999-12-29 13:00:00', '1999-12-29 20:00:00', '1999-12-30 03:00:00', '1999-12-30 10:00:00', '1999-12-30 17:00:00', '1999-12-31 00:00:00'], dtype='datetime64[ns]', freq='7H')
bunch_of_dates = pd.date_range(start='2000-01-01', end='2010-12-31', freq='24D')
s = pd.Series(bunch_of_dates)
s.head()
0 2000-01-01 1 2000-01-25 2 2000-02-18 3 2000-03-13 4 2000-04-06 dtype: datetime64[ns]
s.dt.day.head()
0 1 1 25 2 18 3 13 4 6 dtype: int64
s.dt.weekday_name.head()
0 Saturday 1 Tuesday 2 Friday 3 Monday 4 Thursday dtype: object
mask = s.dt.is_quarter_start
s[mask]
0 2000-01-01 19 2001-04-01 38 2002-07-01 137 2009-01-01 dtype: datetime64[ns]
timeA = pd.Timestamp('2016-03-31 04:35:15 PM')
timeB = pd.Timestamp('2016-03-20 02:16:49 AM')
timeA - timeB
Timedelta('11 days 14:18:26')
pd.Timedelta(days=3, minutes=45, hours=12, weeks=8)
Timedelta('59 days 12:45:00')
pd.Timedelta('14 days 5 hours 12 minutes 49 seconds')
Timedelta('14 days 05:12:49')
shipping = pd.read_csv('https://dadosdatascience.netlify.com/ecommerce.csv', index_col='ID', parse_dates=['order_date','delivery_date'])
shipping.head()
order_date | delivery_date | |
---|---|---|
ID | ||
1 | 1998-05-24 | 1999-02-05 |
2 | 1992-04-22 | 1998-03-06 |
4 | 1991-02-10 | 1992-08-26 |
5 | 1992-07-21 | 1997-11-20 |
7 | 1993-09-02 | 1998-06-10 |
shipping['Delivery Time'] = shipping['delivery_date'] - shipping['order_date']
shipping.head()
order_date | delivery_date | Delivery Time | |
---|---|---|---|
ID | |||
1 | 1998-05-24 | 1999-02-05 | 257 days |
2 | 1992-04-22 | 1998-03-06 | 2144 days |
4 | 1991-02-10 | 1992-08-26 | 563 days |
5 | 1992-07-21 | 1997-11-20 | 1948 days |
7 | 1993-09-02 | 1998-06-10 | 1742 days |
shipping['Dobro do Tempo'] = shipping['delivery_date'] + shipping['Delivery Time']
shipping.head()
order_date | delivery_date | Delivery Time | Dobro do Tempo | |
---|---|---|---|---|
ID | ||||
1 | 1998-05-24 | 1999-02-05 | 257 days | 1999-10-20 |
2 | 1992-04-22 | 1998-03-06 | 2144 days | 2004-01-18 |
4 | 1991-02-10 | 1992-08-26 | 563 days | 1994-03-12 |
5 | 1992-07-21 | 1997-11-20 | 1948 days | 2003-03-22 |
7 | 1993-09-02 | 1998-06-10 | 1742 days | 2003-03-18 |
mascara = shipping['Delivery Time'] > '365 days'
shipping[mascara].head(20)
order_date | delivery_date | Delivery Time | Dobro do Tempo | |
---|---|---|---|---|
ID | ||||
2 | 1992-04-22 | 1998-03-06 | 2144 days | 2004-01-18 |
4 | 1991-02-10 | 1992-08-26 | 563 days | 1994-03-12 |
5 | 1992-07-21 | 1997-11-20 | 1948 days | 2003-03-22 |
7 | 1993-09-02 | 1998-06-10 | 1742 days | 2003-03-18 |
9 | 1990-01-25 | 1994-10-02 | 1711 days | 1999-06-09 |
10 | 1992-02-23 | 1998-12-30 | 2502 days | 2005-11-05 |
11 | 1996-07-12 | 1997-07-14 | 367 days | 1998-07-16 |
18 | 1995-06-18 | 1997-10-13 | 848 days | 2000-02-08 |
20 | 1992-10-17 | 1998-10-06 | 2180 days | 2004-09-24 |
23 | 1992-05-30 | 1999-08-15 | 2633 days | 2006-10-30 |
26 | 1996-04-11 | 1998-05-04 | 753 days | 2000-05-26 |
32 | 1990-01-20 | 1998-07-24 | 3107 days | 2007-01-25 |
33 | 1994-09-21 | 1996-10-12 | 752 days | 1998-11-03 |
35 | 1993-09-10 | 1996-04-28 | 961 days | 1998-12-15 |
36 | 1990-05-15 | 1994-02-14 | 1371 days | 1997-11-16 |
39 | 1990-03-26 | 1993-01-25 | 1036 days | 1995-11-27 |
41 | 1992-02-06 | 1996-05-10 | 1555 days | 2000-08-12 |
50 | 1991-05-03 | 1999-07-17 | 2997 days | 2007-09-30 |
52 | 1994-09-02 | 1997-05-14 | 985 days | 2000-01-24 |
53 | 1995-11-29 | 1998-06-23 | 937 days | 2001-01-15 |
shipping['Delivery Time'].min()
Timedelta('8 days 00:00:00')
shipping['Delivery Time'].max()
Timedelta('3583 days 00:00:00')