我有一个用日期索引的数据框(Python日期时间对象)。如何将频率作为数据框中数据的月数来找到?
我尝试了属性data_frame.index.freq
,但它返回了一个无值。我还使用asfreq
尝试了data_frame.asfreq('M',how={'start','end'}
函数,但它没有返回预期的结果。请告知我如何获得预期的结果。
答案 0 :(得分:2)
您可能希望使用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]
答案 1 :(得分:2)
您希望将日期时间索引转换为DatetimeIndex,最简单的方法是使用to_datetime
:
df.index = pd.to_datetime(df.index)
现在您可以执行时间序列/帧操作,例如resample或TimeGrouper。
如果您的数据具有一致的频率,那么这将是df.index.freq
,如果它没有(例如,如果缺少某些天),则df.index.freq
将为无。< / em>的