我有一个熊猫数据集,每行都有时间戳(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(24hs)
第4行-第3行= 86400(24小时)...
答案 0 :(得分:3)
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