DataFrame.resample(freq)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataFrame.resample(freq)相关的知识,希望对你有一定的参考价值。
参考技术A DataFrame.resample(freq),将数据基于时间列以 freq 作为频度对全局数据做重采样,计算出分段数据和、均值、方差等指标;下面例子中原数据的索引是 Datatime 数据格式,以月为时间单位求出各列数据的平均值。M 全称 Bussiness Month,是商业月的意思,在 Pandas 中称为 DataOffset,除了月之外,还提供年、日、秒、小时、分…等作为采样单位,当然也可以自定义。
pandas中datetime相关
Python Dataframe.resample() 从 datetimeindex 中删除时间
【中文标题】Python Dataframe.resample() 从 datetimeindex 中删除时间【英文标题】:Python Dataframe.resample() deletes time from datetimeindex 【发布时间】:2017-12-03 11:53:13 【问题描述】:由于某种原因,重采样到 24H
或 1D
会缩短 DateTimeIndex
的时间。
我正在使用 蟒蛇:3.5.3/康达 numpy:1.11.3 熊猫:0.20.2
df = pd.read_csv(inFile, parse_dates=True)
print(df.head())
df = df.resample("1D").agg('open':'first','high':'max','low' :'min','close': 'last','volume': 'sum').dropna()
print(df.head()
第一个打印语句
第二
【问题讨论】:
您的期望是什么?这对我来说似乎很正常。 如果您检查索引,您会看到它有一个 freq 属性,当您重新采样时,它会从 None 变为 'D'。 2年前的这个答案中对此进行了某种解释,并且看起来无法更改(至少在2年前)***.com/questions/27607974/…无论如何,请注意这是一个显示问题,索引类型有没有改变。 @ayhan - 我也想看看打印的时间 (00:00:00) @JohnE:是的,索引类型是正确的。但是当我在上面运行 strptime 时,它会抱怨: ValueError: time data '2017-05-30' does not match format '%Y-%m-%d %H:%M:%S' 但是最大值、最小值或最后值没有出现在 00:00?做一个聚合,你会从每小时到每天的数据。如果您只获得第一个值,但对于其他值,我会理解,我认为该索引是错误的。 【参考方案1】:想通了
df.index = pd.to_datetime(df.index.format(formatter=lambda x: x.strftime('%Y-%m-%d %H:%M:%S')))
【讨论】:
以上是关于DataFrame.resample(freq)的主要内容,如果未能解决你的问题,请参考以下文章