Pandas数据帧的不同频率采样

2024-04-24 08:06:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多索引序列/数据帧,ID和时间戳作为键。此数据结构包含各种ID的日常数据。这个月底重采样的数据结构我可以看一下吗?在

ID ts           value 
1  2001-01-30   1
   2001-01-31   2
   2001-02-01   3
2  2001-01-30   3
   2001-01-31   2
   2001-02-01   4

我想要这个输出

^{pr2}$

我可以使用重采样函数调用来帮助我吗?我知道我可以创建月底日期列表,循环这些日期并找到这些值。但我想利用熊猫的全部功能。在


Tags: 数据功能id利用数据结构列表value时间
1条回答
网友
1楼 · 发布于 2024-04-24 08:06:48

为什么要重新取样?只需将索引设置为ts,然后切片,如下所示:

from cStringIO import StringIO
raw = """id  ts     value
1  2001-01-30   1
1  2001-01-31   2
1  2001-02-01   3
2  2001-01-30   3
2  2001-01-31   2
2  2001-02-01   4"""
sio = StringIO(raw)
df = read_csv(sio, sep=r'\s+', header=0, parse_dates=[1])
df.set_index('ts', inplace=True)

切片,然后重置索引:

^{pr2}$

导致:

                    ts  value
id                           
1  2001-01-31 00:00:00      2
2  2001-01-31 00:00:00      2

如果您不在乎如果月末值不存在,那么可以执行以下操作:

df.groupby('id', as_index=False).resample('M', how='last')

这给了

            id  value
ts                   
2001-01-31   1      2
2001-02-28   1      3
2001-01-31   2      2
2001-02-28   2      4

相关问题 更多 >