在 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 显示有关切片和生成的数据帧的更多详细信息。
我有来自不同站点的时间序列数据,每个站点都有一堆变量(有些相同,有些与其他站点不同)。我想要 能按站位或变量类型查询,那用什么好 要使用的 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 显示有关切片和生成的数据帧的更多详细信息。