数据框的频率

5 投票
2 回答
15358 浏览
提问于 2025-04-18 02:18

我有一个数据框,它的索引是日期(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。

撰写回答