Python Pandas - 累积时间序列数据,计算变化?

时间:2018-04-10 16:45:45

标签: python python-3.x pandas sqlite

我每隔一段时间从API中提取数据,我拉的每个项目都有一个“开始日期”(对于广告系列,t1),接下来的点数将是t2值(现在)。这是我正在做的一个学习项目,因为我对数据科学比较陌生。

收入,费用,点击次数,转化次数等值都是累积的。为了找到从一个数据点到下一个数据点的变化,我必须减去n - (n-1),因为n包含来自(n-1)的数据。

我使用(数据库现在为sqlite)将数据拉入数据框:

SQL = """SELECT 
MAX(a.t2) as "Snapshot time",
a.volid AS "Camp ID", 
a.tsid AS "TS ID", 
a.placement as "Source ID", 
a.clicks AS "Clicks tracker", 
a.visits AS "Visits tracker", 
a.conversions AS "Conversion", 
a.revenue AS "Revenue USD", 
b.cost AS "Cost USD" ,
b.clicks AS "ts Clicks",
from tracker a JOIN ts b ON a.placement = b.placement AND a.tsid = 
b.campaignid AND a.t2 = b.t2
GROUP BY a.voli, a.tsid, a.placement"""

df = pd.read_sql_query(SQL, conn)
df_t2['snapshot'] = pd.to_datetime(df_t2['snapshot'], format='%Y-%m-%dT%H:%M:%S.%fZ')

# Generate time value for the second sql query, for n-x
t1 = df_t2['snapshot'].max() - dt.timedelta(hours=offset)
t1 = t1.strftime('%Y-%m-%dT%H:%M:%S.%fZ')

这给了我最新的快照(t0-tn)。我最初的想法是为(t0-t(n-1))制作一个类似的数据帧并减去它们,这就是上面代码中的t1变量。

但我试过这个并且无法让它发挥作用。我也测试过像Pandas中的时间序列一样处理它,但我不确定我的数据结构是否适用。

预期的行为是获得仅由tn-t(n-1)的数据组成的数据帧。如果能够为整个系列生成 all n-(n-1),那就更好了,所以每条记录都是增量而不是累积值。

非常感谢任何输入。提前致谢。

0 个答案:

没有答案