【发布时间】:2014-05-25 01:43:06
【问题描述】:
我有一个用日期索引的数据框(Python 日期时间对象)。我怎样才能找到频率作为数据框中数据的月数?
我尝试了属性data_frame.index.freq,但它返回一个无值。我还尝试了使用data_frame.asfreq('M',how={'start','end'} 的asfreq 函数,但它没有返回预期的结果。请告知我如何才能获得预期的结果。
【问题讨论】:
我有一个用日期索引的数据框(Python 日期时间对象)。我怎样才能找到频率作为数据框中数据的月数?
我尝试了属性data_frame.index.freq,但它返回一个无值。我还尝试了使用data_frame.asfreq('M',how={'start','end'} 的asfreq 函数,但它没有返回预期的结果。请告知我如何才能获得预期的结果。
【问题讨论】:
您可能希望在索引中使用 pandas Timestamp 而不是 datetime 来使用“freq”。请参阅下面的示例
import pandas as pd
dates = pd.date_range('2012-1-1','2012-2-1')
df = pd.DataFrame(index=dates)
print (df.index.freq)
产量,
<Day>
您可以像这样轻松转换数据框,
df.index = [pd.Timestamp(d) for d in df.index]
【讨论】:
您想将日期时间索引转换为 DatetimeIndex,最简单的方法是使用to_datetime:
df.index = pd.to_datetime(df.index)
现在您可以进行时间序列/帧操作,例如 resample 或 TimeGrouper。
如果您的数据具有一致的频率,那么这将是 df.index.freq,如果不是(例如,如果缺少某些日子),那么 df.index.freq 将是无。
【讨论】: