数据框的频率
我有一个数据框,它的索引是日期(Python的日期时间对象)。我想知道这个数据框里有多少个月的数据,也就是想找出数据的频率。
我试过用属性 data_frame.index.freq
,但是它返回的是空值。我还尝试了 asfreq
函数,使用 data_frame.asfreq('M',how={'start','end'})
,但结果也不是我想要的。请告诉我怎么才能得到我想要的结果。
2 个回答
4
你可能想用 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]
4
你想把日期时间的索引转换成一个日期时间索引,最简单的方法就是使用to_datetime
这个函数:
df.index = pd.to_datetime(df.index)
现在你可以进行时间序列或数据框的操作,比如重采样或者使用时间分组功能。
如果你的数据有规律的时间间隔,那么这个会显示为df.index.freq
,如果没有规律(比如有些天的数据缺失),那么df.index.freq
就会显示为None。