forked from pandas-dev/pandas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtimedelta.py
118 lines (77 loc) · 2.76 KB
/
timedelta.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import datetime
import numpy as np
import pandas as pd
from pandas import to_timedelta, Timestamp, Timedelta
class TimedeltaConstructor(object):
goal_time = 0.2
def time_from_int(self):
Timedelta(123456789)
def time_from_unit(self):
Timedelta(1, unit='d')
def time_from_components(self):
Timedelta(days=1, hours=2, minutes=3, seconds=4, milliseconds=5,
microseconds=6, nanoseconds=7)
def time_from_datetime_timedelta(self):
Timedelta(datetime.timedelta(days=1, seconds=1))
def time_from_np_timedelta(self):
Timedelta(np.timedelta64(1, 'ms'))
def time_from_string(self):
Timedelta('1 days')
def time_from_iso_format(self):
Timedelta('P4DT12H30M5S')
def time_from_missing(self):
Timedelta('nat')
class ToTimedelta(object):
goal_time = 0.2
def setup(self):
self.arr = np.random.randint(0, 1000, size=10000)
self.arr2 = ['{0} days'.format(i) for i in self.arr]
self.arr3 = np.random.randint(0, 60, size=10000)
self.arr3 = ['00:00:{0:02d}'.format(i) for i in self.arr3]
self.arr4 = list(self.arr2)
self.arr4[-1] = 'apple'
def time_convert_int(self):
to_timedelta(self.arr, unit='s')
def time_convert_string(self):
to_timedelta(self.arr2)
def time_convert_string_seconds(self):
to_timedelta(self.arr3)
def time_convert_coerce(self):
to_timedelta(self.arr4, errors='coerce')
def time_convert_ignore(self):
to_timedelta(self.arr4, errors='ignore')
class TimedeltaOps(object):
goal_time = 0.2
def setup(self):
self.td = to_timedelta(np.arange(1000000))
self.ts = Timestamp('2000')
def time_add_td_ts(self):
self.td + self.ts
class TimedeltaProperties(object):
goal_time = 0.2
def setup(self):
self.td = Timedelta(days=365, minutes=35, seconds=25, milliseconds=35)
def time_timedelta_days(self):
self.td.days
def time_timedelta_seconds(self):
self.td.seconds
def time_timedelta_microseconds(self):
self.td.microseconds
def time_timedelta_nanoseconds(self):
self.td.nanoseconds
class DatetimeAccessor(object):
goal_time = 0.2
def setup(self):
self.N = 100000
self.series = pd.Series(
pd.timedelta_range('1 days', periods=self.N, freq='h'))
def time_dt_accessor(self):
self.series.dt
def time_timedelta_dt_accessor_days(self):
self.series.dt.days
def time_timedelta_dt_accessor_seconds(self):
self.series.dt.seconds
def time_timedelta_dt_accessor_microseconds(self):
self.series.dt.microseconds
def time_timedelta_dt_accessor_nanoseconds(self):
self.series.dt.nanoseconds