2

如何创建日期时间索引"foo"以用于原始数据系列。(例如,每 15 秒“foo”和每 30 秒“foo2”。)如果可以将原始系列插入“基本”数据帧,我想使用“foo”重铸数据帧。

如果想要将 df "foo" 和 df "foo2" 结合起来的系列,那么内存命中会是多少?用原始数据系列填充 foo 索引会更好吗?

编辑:之后import pandasdatetime.timedelta停止工作

4

3 回答 3

7

我很难理解你在问什么;使用示例数据准确说明您正在寻找的内容将有助于使事情更加清晰。

我认为你应该怎么做:

rng = DateRange(start, end, offset=datetools.Second(15)

创建日期范围。要将数据放入由此索引的 DataFrame 中,您应该添加列并将它们重新索引到上面的日期范围method='ffill'

df = DataFrame(index=rng)
df[colname] = series.reindex(df.index, method='ffill')

根据 datetime.timedelta,datetime.datetime 是 pandas 命名空间的一部分,所以如果你这样做了,from pandas import *那么你之前所做的任何事情都会被pandas 命名空间内的引用import datetime所掩盖。datetime.datetime

于 2012-04-07T20:11:27.600 回答
1

由于 Wes 的回答我认为pandas.DateRange不再存在于pandas. 我在使用熊猫版本 0.22.0。

pandas.DatetimeIndex改为使用,例如:

import datetime
import pandas as pd


start = datetime.datetime.now()
times = pd.DatetimeIndex(freq='2s', start=start, periods=10)

或者

start = datetime.datetime.now()
end = start + datetime.timedelta(hours=1)
times = pd.DatetimeIndex(freq='2s', start=start, end=end)
于 2018-05-12T16:12:16.303 回答
1

从 0.24 版开始

基于 start、periods 和 end 创建 DatetimeIndex 已被弃用,取而代之的是date_range().

使用date_range()类似于DatetimeIndex()

start = datetime.datetime.now()
end = start + datetime.timedelta(hours=1)
times = pd.date_range(freq='2s', start=start, end=end)

times是一个包含 1801 个元素的 DatetimeIndex,间隔为 2 秒

于 2019-03-07T00:30:38.297 回答