在 pandas 中处理多变量和多站时间序列数据

Handling multi-variable and multi-station timeseries data in pandas

我有来自不同站点的时间序列数据,每个站点都有一堆变量(有些相同,有些与其他站点不同)。我想要 能按站位或变量类型查询,那用什么好 要使用的 pandas 结构类型?

我正在考虑使用面板,但他们似乎强制执行 等级制度。

我希望能够做到 p.temp 或 p.siteA 和 两次取回数据帧

不确定 "enforce a hierarchy" 是什么意思,但您可以使用 Pandas 3D 面板完成此类查询:

import numpy as np
from pandas import Panel, date_range

index = date_range(start='2015-01-01', end='2015-02-01')
stations = ['Here', 'There', 'Everywhere']
variables = ['temperature', 'salinity', 'oxygen', 'pH']

data = np.empty((len(index), len(stations), len(variables)))
data.shape
(32, 3, 4)

p = Panel(data=data, items=index, major_axis=stations, minor_axis=variables)
p.shape
(32, 3, 4)

p
<class 'pandas.core.panel.Panel'>
Dimensions: 32 (items) x 3 (major_axis) x 4 (minor_axis)
Items axis: 2015-01-01 00:00:00 to 2015-02-01 00:00:00
Major_axis axis: Here to Everywhere
Minor_axis axis: temperature to pH

# Slice by date:
p.ix['2015-01-30']
# by variable
p.minor_xs('salinity')
# by station
p.major_xs('There')
# all together
p.ix['2015-01-30']['temperature']['Here']

This notebook 显示有关切片和生成的数据帧的更多详细信息。