本文整理匯總了Python中pandas.DatetimeIndex方法的典型用法代碼示例。如果您正苦於以下問題:Python pandas.DatetimeIndex方法的具體用法?Python pandas.DatetimeIndex怎麽用?Python pandas.DatetimeIndex使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類pandas
的用法示例。
在下文中一共展示了pandas.DatetimeIndex方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: match_times
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def match_times(stop_id, estimates, schedule):
# This technique finds the closest scheduled time to actual arrivals
# This is flawed since it does not account for scheduled arrivals where
# a train never arrived.
# It's difficult to search the other way around however, since our estimated
# arrival times are incomplete (see "select.dropna" in "estimate_arrivals").
# If we search for the closest estimated arrival to each scheduled stop,
# we will get some that are far apart because the actual train was likely associated
# with a different scheduled stop time.
# This way seems to be fairer on Metro, but we are open to improvements!
# Try clause is here because there was an unexplained bug occurring on April 10 2019 with data inputs from around 1:35pm. There was an index (-1) out of range error.
# Exact cause of the issue is still uncertain but there was a vehicle position observation out of range on the blue line at that time.
try:
estimates.loc[:, "closest_scheduled"] = estimates.datetime_utc.apply(
lambda x: schedule.index[schedule.index.get_loc(x, method="nearest")]
)
estimates.loc[:, "closest_scheduled"] = pd.DatetimeIndex(
estimates["closest_scheduled"]
)
return estimates
except:
return None
示例2: match_arrivals_with_schedule
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def match_arrivals_with_schedule(estimated_trips, schedule_direction):
schedule_direction.loc[:,"datetime_utc"] = pd.to_datetime(schedule_direction["datetime"], utc=True)
estimated_trips.loc[:,"datetime_utc"] = pd.to_datetime(estimated_trips["datetime"], utc=True)
schedule_direction = schedule_direction.set_index(pd.DatetimeIndex(schedule_direction["datetime_utc"])).sort_index()
matched_estimates = [
match_times(
stop_id,
stop_estimates,
schedule_direction[schedule_direction["stop_id"] == stop_id],
)
for stop_id, stop_estimates in estimated_trips.groupby(["stop_id"])
]
matched_estimates = [x for x in matched_estimates if x is not None]
matched_estimates = pd.concat(matched_estimates)
matched_estimates["since_scheduled"] = (
matched_estimates["datetime_utc"] - matched_estimates["closest_scheduled"]
)
return matched_estimates
示例3: _multi_index_to_records
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def _multi_index_to_records(index, empty_index):
# array of tuples to numpy cols. copy copy copy
if not empty_index:
ix_vals = list(map(np.array, [index.get_level_values(i) for i in range(index.nlevels)]))
else:
# empty multi index has no size, create empty arrays for recarry.
ix_vals = [np.array([]) for n in index.names]
index_names = list(index.names)
count = 0
for i, n in enumerate(index_names):
if n is None:
index_names[i] = 'level_%d' % count
count += 1
log.info("Level in MultiIndex has no name, defaulting to %s" % index_names[i])
index_tz = [get_timezone(i.tz) if isinstance(i, DatetimeIndex) else None for i in index.levels]
return ix_vals, index_names, index_tz
示例4: _index_to_records
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def _index_to_records(self, df):
metadata = {}
index = df.index
index_tz = None
if isinstance(index, MultiIndex):
ix_vals, index_names, index_tz = _multi_index_to_records(index, len(df) == 0)
else:
ix_vals = [index.values]
index_names = list(index.names)
if index_names[0] is None:
index_names = ['index']
log.info("Index has no name, defaulting to 'index'")
if isinstance(index, DatetimeIndex) and index.tz is not None:
index_tz = get_timezone(index.tz)
if index_tz is not None:
metadata['index_tz'] = index_tz
metadata['index'] = index_names
return index_names, ix_vals, metadata
示例5: _index_from_records
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def _index_from_records(self, recarr):
index = recarr.dtype.metadata['index']
if len(index) == 1:
rtn = Index(np.copy(recarr[str(index[0])]), name=index[0])
if isinstance(rtn, DatetimeIndex) and 'index_tz' in recarr.dtype.metadata:
rtn = rtn.tz_localize('UTC').tz_convert(recarr.dtype.metadata['index_tz'])
else:
level_arrays = []
index_tz = recarr.dtype.metadata.get('index_tz', [])
for level_no, index_name in enumerate(index):
# build each index level separately to ensure we end up with the right index dtype
level = Index(np.copy(recarr[str(index_name)]))
if level_no < len(index_tz):
tz = index_tz[level_no]
if tz is not None:
if not isinstance(level, DatetimeIndex) and len(level) == 0:
# index type information got lost during save as the index was empty, cast back
level = DatetimeIndex([], tz=tz)
else:
level = level.tz_localize('UTC').tz_convert(tz)
level_arrays.append(level)
rtn = MultiIndex.from_arrays(level_arrays, names=index)
return rtn
示例6: to_mongo
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def to_mongo(self, range_obj):
"""
takes the range object used for this chunker type
and converts it into a string that can be use for a
mongo query that filters by the range
returns
-------
dict
"""
if isinstance(range_obj, (pd.DatetimeIndex, tuple)):
range_obj = DateRange(range_obj[0], range_obj[-1])
if range_obj.start and range_obj.end:
return {'$and': [{START: {'$lte': range_obj.end}}, {END: {'$gte': range_obj.start}}]}
elif range_obj.start:
return {END: {'$gte': range_obj.start}}
elif range_obj.end:
return {START: {'$lte': range_obj.end}}
else:
return {}
示例7: exclude
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def exclude(self, data, range_obj):
"""
Removes data within the bounds of the range object (inclusive)
returns
-------
data, filtered by range_obj
"""
if isinstance(range_obj, (pd.DatetimeIndex, tuple)):
range_obj = DateRange(range_obj[0], range_obj[-1])
if 'date' in data.index.names:
return data[(data.index.get_level_values('date') < range_obj.start) | (data.index.get_level_values('date') > range_obj.end)]
elif 'date' in data.columns:
return data[(data.date < range_obj.start) | (data.date > range_obj.end)]
else:
return data
示例8: test_missing_cols
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_missing_cols(chunkstore_lib):
index = DatetimeIndex(pd.date_range('2019-01-01', periods=3, freq='D'), name='date')
index2 = DatetimeIndex(pd.date_range('2019-01-04', periods=3, freq='D'), name='date')
expected_index = DatetimeIndex(pd.date_range('2019-01-01', periods=6, freq='D'), name='date')
expected_df = DataFrame({'A': [1, 2, 3, 40, 50, 60], 'B': [5.0,6.0,7.0, np.nan, np.nan, np.nan]}, index=expected_index)
df = pd.DataFrame({'A': [1, 2, 3], 'B': [5,6,7]}, index=index)
chunkstore_lib.write('test', df, chunk_size='D')
df = pd.DataFrame({'A': [40, 50, 60]}, index=index2)
chunkstore_lib.append('test', df, chunk_size='D')
assert_frame_equal(chunkstore_lib.read('test'), expected_df)
df = chunkstore_lib.read('test', columns=['B'])
assert_frame_equal(df, expected_df['B'].to_frame())
示例9: test_dataframe_append_should_add_new_column
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_dataframe_append_should_add_new_column(library):
data = np.zeros((2,), dtype=[('A', 'i4'), ('B', 'f4'), ('C', 'a10')])
data[:] = [(1, 2., 'Hello'), (2, 3., "World")]
df = DataFrame(data, index=DatetimeIndex(np.array([dt(2013, 1, 1),
dt(2013, 1, 2)]).astype('datetime64[ns]'), name='DATETIME'))
data2 = np.zeros((1,), dtype=[('A', 'i4'), ('B', 'f4'), ('C', 'a10'), ('D', 'f4')])
data2[:] = [(4, 5., 'Hi', 6.)]
df2 = DataFrame(data2, index=DatetimeIndex(np.array([dt(2013, 1, 3)]).astype('datetime64[ns]'), name='DATETIME'))
expected_data = np.zeros((3,), dtype=[('A', 'i4'), ('B', 'f4'), ('C', 'a10'), ('D', 'f4')])
expected_data[:] = [(1, 2., 'Hello', np.nan), (2, 3., "World", np.nan), (4, 5., 'Hi', 6.)]
expected = DataFrame(expected_data, index=DatetimeIndex(np.array([dt(2013, 1, 1),
dt(2013, 1, 2),
dt(2013, 1, 3)]).astype('datetime64[ns]'), name='DATETIME'))
library.write('pandas', df)
library.append('pandas', df2)
actual = library.read('pandas').data
assert_frame_equal(expected, actual)
示例10: test_dataframe_append_should_add_new_columns_and_reorder
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_dataframe_append_should_add_new_columns_and_reorder(library):
data = np.zeros((2,), dtype=[('A', 'i4'), ('B', 'f4'), ('C', 'a10')])
data[:] = [(1, 2., 'Hello'), (2, 3., "World")]
df = DataFrame(data, index=DatetimeIndex(np.array([dt(2013, 1, 1),
dt(2013, 1, 2)]).astype('datetime64[ns]'), name='DATETIME'))
data2 = np.zeros((1,), dtype=[('C', 'a10'), ('A', 'i4'), ('E', 'a1'), ('B', 'f4'), ('D', 'f4'), ('F', 'i4')])
data2[:] = [('Hi', 4, 'Y', 5., 6., 7)]
df2 = DataFrame(data2, index=DatetimeIndex(np.array([dt(2013, 1, 3)]).astype('datetime64[ns]'), name='DATETIME'))
expected_data = np.zeros((3,), dtype=[('C', 'a10'), ('A', 'i4'), ('E', 'a1'),
('B', 'f4'), ('D', 'f4'), ('F', 'i4')])
expected_data[:] = [('Hello', 1, '', 2., np.nan, 0), ("World", 2, '', 3., np.nan, 0), ('Hi', 4, 'Y', 5., 6., 7)]
expected = DataFrame(expected_data, index=DatetimeIndex(np.array([dt(2013, 1, 1),
dt(2013, 1, 2),
dt(2013, 1, 3)]).astype('datetime64[ns]'), name='DATETIME'))
library.write('pandas', df)
library.append('pandas', df2)
actual = library.read('pandas').data
assert_frame_equal(expected, actual)
# -- auto generated tests --- #
示例11: test_map_dictlike
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_map_dictlike(self, mapper):
expected = self.index + self.index.freq
# don't compare the freqs
if isinstance(expected, pd.DatetimeIndex):
expected.freq = None
result = self.index.map(mapper(expected, self.index))
tm.assert_index_equal(result, expected)
expected = pd.Index([pd.NaT] + self.index[1:].tolist())
result = self.index.map(mapper(expected, self.index))
tm.assert_index_equal(result, expected)
# empty map; these map to np.nan because we cannot know
# to re-infer things
expected = pd.Index([np.nan] * len(self.index))
result = self.index.map(mapper([], []))
tm.assert_index_equal(result, expected)
示例12: test_constructor_from_index_dtlike
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_constructor_from_index_dtlike(self, cast_as_obj, index):
if cast_as_obj:
result = pd.Index(index.astype(object))
else:
result = pd.Index(index)
tm.assert_index_equal(result, index)
if isinstance(index, pd.DatetimeIndex):
assert result.tz == index.tz
if cast_as_obj:
# GH#23524 check that Index(dti, dtype=object) does not
# incorrectly raise ValueError, and that nanoseconds are not
# dropped
index += pd.Timedelta(nanoseconds=50)
result = pd.Index(index, dtype=object)
assert result.dtype == np.object_
assert list(result) == list(index)
示例13: test_constructor_from_frame_series_freq
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_constructor_from_frame_series_freq(self):
# GH 6273
# create from a series, passing a freq
dts = ['1-1-1990', '2-1-1990', '3-1-1990', '4-1-1990', '5-1-1990']
expected = DatetimeIndex(dts, freq='MS')
df = pd.DataFrame(np.random.rand(5, 3))
df['date'] = dts
result = DatetimeIndex(df['date'], freq='MS')
assert df['date'].dtype == object
expected.name = 'date'
tm.assert_index_equal(result, expected)
expected = pd.Series(dts, name='date')
tm.assert_series_equal(df['date'], expected)
# GH 6274
# infer freq of same
freq = pd.infer_freq(df['date'])
assert freq == 'MS'
示例14: test_union
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_union(self, tz):
rng1 = pd.date_range('1/1/2000', freq='D', periods=5, tz=tz)
other1 = pd.date_range('1/6/2000', freq='D', periods=5, tz=tz)
expected1 = pd.date_range('1/1/2000', freq='D', periods=10, tz=tz)
rng2 = pd.date_range('1/1/2000', freq='D', periods=5, tz=tz)
other2 = pd.date_range('1/4/2000', freq='D', periods=5, tz=tz)
expected2 = pd.date_range('1/1/2000', freq='D', periods=8, tz=tz)
rng3 = pd.date_range('1/1/2000', freq='D', periods=5, tz=tz)
other3 = pd.DatetimeIndex([], tz=tz)
expected3 = pd.date_range('1/1/2000', freq='D', periods=5, tz=tz)
for rng, other, expected in [(rng1, other1, expected1),
(rng2, other2, expected2),
(rng3, other3, expected3)]:
result_union = rng.union(other)
tm.assert_index_equal(result_union, expected)
示例15: test_difference
# 需要導入模塊: import pandas [as 別名]
# 或者: from pandas import DatetimeIndex [as 別名]
def test_difference(self, tz, sort):
rng_dates = ['1/2/2000', '1/3/2000', '1/1/2000', '1/4/2000',
'1/5/2000']
rng1 = pd.DatetimeIndex(rng_dates, tz=tz)
other1 = pd.date_range('1/6/2000', freq='D', periods=5, tz=tz)
expected1 = pd.DatetimeIndex(rng_dates, tz=tz)
rng2 = pd.DatetimeIndex(rng_dates, tz=tz)
other2 = pd.date_range('1/4/2000', freq='D', periods=5, tz=tz)
expected2 = pd.DatetimeIndex(rng_dates[:3], tz=tz)
rng3 = pd.DatetimeIndex(rng_dates, tz=tz)
other3 = pd.DatetimeIndex([], tz=tz)
expected3 = pd.DatetimeIndex(rng_dates, tz=tz)
for rng, other, expected in [(rng1, other1, expected1),
(rng2, other2, expected2),
(rng3, other3, expected3)]:
result_diff = rng.difference(other, sort)
if sort is None:
expected = expected.sort_values()
tm.assert_index_equal(result_diff, expected)