【发布时间】:2014-06-02 23:15:22
【问题描述】:
嗨,我有一个来自 psycopg2 的结果集,就像这样
(
(timestamp1, val11, val12, val13, val14),
(timestamp2, val21, val22, val23, val24),
(timestamp3, val31, val32, val33, val34),
(timestamp4, val41, val42, val43, val44),
)
我必须返回行的值之间的差异(时间戳列除外)。 每行将减去前一行的值。 第一行将是
timestamp, 'NaN', 'NaN' ....
这必须作为通用对象返回 即类似于以下对象的数组
Group(timestamp=timestamp, rows=[val11, val12, val13, val14]
我打算使用 Pandas 来做差异。 像下面这样的东西在值上可以正常工作
df = DataFrame().from_records(data=results, columns=headers)
diffs = df.set_index('time', drop=False).diff()
但是 diff 也会在时间戳列上执行,我不能让它忽略一列而 保留原始时间戳列。
此外,我不确定将数据转换为我的返回格式是否有效 正如 Pandas 建议不要进行行访问
在我需要的输出格式中获得结果集差异的快速方法是什么?
【问题讨论】: