首页 > 解决方案 > 检查熊猫中的时间戳

问题描述

我有一个熊猫数据集,每行都带有时间戳(unix 时间 - 每行代表一天)。

前任:

Index  Timestamp  Value
1      1544400000  2598
2      1544572800  2649
3      1544659200  2234
4      1544745600  2204
5      1544832000  1293

是否可以使用一种方法,我可以从前一行中减去每一行(从第一列)?目的是知道行之间的间隔是否相同,以确保数据集没有跳过一天。在上面的示例中,第一天跳到第三天,间隔为 48 小时,而其他行都是 24 小时间隔。

我想我可以使用iterrows().,但这对于大型数据库来说似乎非常昂贵。

--

不确定我是否足够清楚,所以在上面的示例中:

列时间戳:

第 2 行 - 第 1 行 = 172800(48 小时)

第 3 行 - 第 2 行 = 86400(24 小时)

第 4 行 - 第 3 行 = 86400(24 小时)...

标签: pythonpandas

解决方案


Pandas DataFrames 有一种diff方法可以满足您的需求。请注意,返回的差异的第一行将包含 NaN,因此在任何比较中都需要忽略它。

一个例子是

import pandas as pd

df = pd.DataFrame({'timestamps': [100, 200, 300, 500]})

# get diff of column (ignoring the first NaN values) and convert to a list
X = df['timestamps'].diff()[1:].tolist()
X.count(X[0]) == len(X)  # check if all values are the same, e.g. https://stackoverflow.com/a/3844948/1862861

推荐阅读