在sql中比较容易处理类似“近n个月金额之和/最大值/最小值/平均值” 这样的变量,使用sum(case when date then amount else 0 end) 即可,如果是出差在外只能处理离线数据不能使用数据库时,这个时候就要用python去构造时间切片类的特征。整理了自己之前写过的代码,往往都太笨拙和重复。
import pandas as pd
import numpy as np
import time as time
#生成实例数据集
data = pd.DataFrame({'id':['a','a','b','b','a'],
'billdate': ['2018-09-01','2018-08-01','2018-08-01','2018-01-01','2018-11-01'],
'amount':list(np.random.randint(1,100,5)),
'interest':np.random.rand(5),
'dt': ['2018-10-01','2018-10-01','2018-11-01','2018-11-01','2018-10-01']
})
data

# 首先计算时间差
def month_sub(d1, d2):
year = int(d1[:4]) - int(d2[:4])
month = int(d1[5:7]) - i

当无法使用数据库处理如‘近n个月金额之和/最大值/最小值/平均值’这类变量时,可以借助Python进行特征工程。本文介绍了如何在离线数据处理中,利用Python高效构造时间切片类的特征。
最低0.47元/天 解锁文章
3012

被折叠的 条评论
为什么被折叠?



